App-Tpv: Facturación Encargos
Facturación de encargos.
Cuando entramos desde menú en la facturación de encargos, nos aparece un listado de los últimos encargos pendientes, ordenado por fecha de entrega, y detallando las líneas (excluyendo los anticipos) muy útil para que el usuario pueda localizar el encargo del cliente que tiene delante (ya que muchas veces no se ha acordado de traer el papel del encargo, y por tanto desconoce el número):

Al pulsar ”intro” sobre una línea, entraremos en el encargo asociado, y veremos todas las líneas del encargo:

Marcaje parcial de encargo.
En esta pantalla, para los casos de entregas parciales, el operario puede actuar con el campo “cantidad a frar”, donde podrá marcar las cantidades que entrega al cliente:

Y luego pulsar la letra ”R” para facturar lo marcado:

(al final veremos la pantalla de pre-venta)
Marcaje total de encargo.
En el caso de entrega total, con la letra “T” podemos marcar todo, y nos pedirá confirmación:

Y nos dejará todas las líneas marcadas con sus cantidades pendientes:

Facturación del encargo (total o pacial).
Una vez que tengamos las cantidades marcadas, con la letra “R” las confirmamos, y el programa nos pide una confirmación extra:

Después, el programa nos crea una pre-venta con las líneas marcadas, pero primero nos aparece un mensaje de aviso con lo que está sucediendo:

Factura de las cantidades confirmadas del encargo:
Ahora el programa nos enseña la pre-venta creada automáticamente con las líneas confirmadas del encargo:

Pero no nos dejará modificar nada (nos lo enseña para que el operario vea que aparecen las líneas y cantidades confirmadas, pero no deben poder cambiarse aquí)
En esta pantalla, solo puede retrocederse al encargo (en cuyo caso borraremos la pre-venta), o confirmamos con F9/F10, y pasamos al cobro:

Y la factura generada sigue los procedimientos normales, salvo que añade unos textos explicativos del anticipo, donde informa de la factura donde se cobró el anticipo:

En los casos en que el anticipo fuera del 100% del encargo (en principio, la mayoría de encargos), la factura final generada tendrá importe cero, por compensarse todos los importes. Esto no es problema, ya que las facturas de total cero van a parar a una serie específica para ello. Por tanto no hay que hacer ningún tratamiento diferenciado de estos casos.
Como grabar las tablas de preventas al facturar un encargo.
- posprecab, cabecera de preventa:
- postie_id, Nº de tienda
- posprecab_num, Nº de preventa, automático
- pospevcab_num, Nº del encargo
- posclie_id, Nº de cliente del encargo, si hay
- posprelin, línea de preventa de los productos:
- postie_id, Nº de tienda
- posprecab_num, Nº de preventa, el de la cabecera
- pospevcab_num, Nº del encargo
- pospevlin_lin, Nº de línea del encargo
- posartcla_id, Clase
- id_maesarti, ID de producto
- cod_articulo, referencia producto
- posprelin_desc, arrastrarlo de pospevlin_desc
- posprelin_obse, arrastrarlo de pospevlin_obse
- posprelin_cant, unidades a facturar, las marcadas en el paso anterior
- pospreclin_prec_mone, arrastrarlo de pospevlin_prec_mone
- pospreclin_prec_euro, arrastrarlo de pospevlin_prec_euro
- pospreclin_dto_lin, arrastrarlo de pospevlin_dto_lin
- pospreclin_dto_cab, arrastrarlo de pospevlin_dto_cab
- pospreclin_tpc_iva, arrastrarlo de pospevlin_tpc_iva
- pospreclin_tpc_rec, arrastrarlo de pospevlin_tpc_rec
- posprelin, línea de preventa de compensación anticipo:
- Usamos los mismos campos que las líneas de productos, con las particularidades:
- posprelin_cant, ponemos la cantidad –1, para que el anticipo reste de los productos
Tablas de encargos y enlaces con ventas:
Estas tablas no deben ser actualizadas desde la APP, solo son de lectura
- pospevcab, cabecera de encargos:
- postie_id, Nº de tienda
- postiecab_num, Nº de encargo, autonumérico
- pospevcab_fecha, fecha encargo
- pospevcab_hora, hora encargo
- pospevcab_sw_estado, estado: 0-pendiente, 1-cerrado
- poscli_id, Nº de cliente, si hubiera
- pospevcab_nombre, nombre cliente en caso de que no esté codificado
- pospevcab_telefono, tlf cliente en caso de que no esté codificado
- pospevlin, detalle de encargos: (campos análogos al detalle de pre-ventas/ventas)
- pospevlin_fecha_entrega, fecha de entrega de línea
- pospevlin_cant_fact, cantidad facturada
- pospevlin_sw_estado, estado línea: 0-pendiente, 1-facturado
- pospevlin_sw_pec, crear pedido, 0-no, 1-sí
- pospevlif, enlace línea encargo con línea venta:
- posfaccab_ser, serie factura
- posfaccab_num, nº factura
- posfaclin_id, id línea factura
- pospevcab_num, nº encargo
- pospevlin_id, id línea encargo
- pospevlin_cant, cantidad factura
Procesos de backend:
-
Hay que crear un ITie asociado al pospevlif que haga lo siguiente:
- Qpospevlif2pospevlin:
- En cualquier IUD ...
- ... hay que actualizar los campos pospevlin_sw_estado y pospevlin_cant_fact
- Lo mejor es actualizar estos campos leyendo todos los pospevlif que cuelguen del pospevlin
-
Además, cuando se crean las líneas de pre-venta hay que duplicar también los registros del posdatmat y posdatmov que pudiera haber.
-
Hay que crear un ITie asociado al pospevlin que haga lo siguiente:
- Qpospevlin2pospecxxx:
- En IU, si el pospevlin_sw_pec pasa de 0 a 1, hay que crear/reusar un pospeccab y crear un pospeclin
- En IU, si el pospevlin pasa de 1 a 0, o en D, hay que borrar el pospeclin creado antes
- Se actualizan los campos pospeccab_num y pospeclin_lin del registro orígen