Importación de datos de ventas hacia otra aplicacion de gestión I

IMPORTACIÓN DE DATOS DE VENTAS HACIA OTRA APLICACIÓN DE GESTIÓN

Para trabajar con los cierres de caja desde otro software hay que diferenciar entre 3 tipos de datos
1. Datos de Movimientos: las entradas y salidas de dinero de caja, así que para sumar todos los datos de movimientos del dia
2. Datos de Ventas: Ventas hechas en el día , partes invitadas, etc
3. Otros movimientos y funciones ejecutadas en caja(no importantes)

Para obtener los Datos Tendremos una SQL
SELECT `Cambios:` AS Movimientos, Sum([PrecioTotal]) as valor
FROM Ventadia where familia like `cambio`
union
SELECT `Pagos:` aS Movimientos, Sum([PrecioTotal]) as valor
FROM Ventadia where familia like `Pagos*`
union
SELECT `Ingresos:` aS Movimientos, Sum([PrecioTotal]) as Valor
FROM Ventadia where familia like `Ingreso*`
union

SELECT `Cobro: FP:` & forma_De_Pago & ` ` AS Movimientos, Sum([Pagado]) as VAlor
FROM Ventadia where Forma_De_Pago <> `` and Forma_De_Pago <>`PENDIENTECOBRO` and Forma_De_Pago <>`EFECTIVO`
Group by forma_De_Pago
having Sum([Pagado]) >0
union
SELECT `Cobro: pendiente de cobro:` AS Movimientos, Sum(Pagado) as VAlor
FROM Ventadia where Forma_De_Pago =`PENDIENTECOBRO`

Union

SELECT `Venta Total sin invitar: ` as Movimientos, sum(PrecioTotal*Cantidad/(abs(Cantidad))) as Valor
FROM Ventadia where Ticket <>`` and tipo_Invitado=0 and familia <> `Forma_De_Pago` and cantidad <>0


union
SELECT `Venta Total Invitado: ` as Movimientos, sum(PrecioTotal*CAntidad/(abs(Cantidad))) as Valor
FROM Ventadia where Ticket <>`` and tipo_Invitado=-1 and familia <> `Forma_De_Pago` and cantidad <>0

union
SELECT `Venta Total de ` & Camarero & `: sin invitar ` as Movimientos, sum(PrecioTotal*Cantidad/(abs(Cantidad))) as Valor
FROM Ventadia where Ticket <>`` and tipo_Invitado=0 and familia <> `Forma_De_Pago` and cantidad <>0
Group by Camarero

union
SELECT `Venta Total de ` & Camarero & ` invitado : ` as Movimientos, sum(PrecioTotal*Cantidad/(Abs(Cantidad))) as Valor
FROM Ventadia where Ticket <>`` and tipo_Invitado=-1 and familia <> `Forma_De_Pago` and cantidad <>0
Group by Camarero

UNION
SELECT `Ticket:` & Ticket & ` cobrado` AS Movimientos, Sum(PrecioTotal*Cantidad/(abs(Cantidad))) as Valor
FROM Ventadia where Familia <> `Forma_De_Pago` and Ticket <>`` and tipo_Invitado=0 and cantidad <>0
Group by Ticket
having sum(precioTotal)>0

UNION SELECT `Ticket:` & Ticket & ` invitado` AS Movimientos, Sum(PrecioTotal*CAntidad/(abs(Cantidad))) as Valor
FROM Ventadia where Familia <> `Forma_De_Pago` and Ticket <>`` and tipo_Invitado=-1 and cantidad <>0
Group by Ticket;

UNION
SELECT `Ticket:` & Ticket & ` info anula` AS Movimientos, ArtNombre
FROM Ventadia where Familia =`Anulacion` and artNombre like `Anula el*`

UNION SELECT `Ticket:` & Ticket & ` info anulado por` AS Movimientos, ArtNombre
FROM Ventadia where Familia =`Anulacion` and artNombre like `Anulado*`

union
SELECT `Z Real en Caja` as Movimientos, PrecioTotal as Valor
FROM Ventadia where familia = `FUNCION` and artnombre=`REAL`
Union
SELECT `Z Descuadre` as Movimientos, PrecioTotal as Valor
From Ventadia where familia = `FUNCION` and artnombre=`DESCUADRE`


El resultado en una Base de datos de Pruebas es el siguiente

MovimientosvalorCambios:1000Cobro: FP:ESPECIAL1 4Cobro: FP:ESPECIAL2 2Cobro: pendiente de cobro:14Ingresos:200Pagos:400Ticket:14 cobrado6,1Ticket:15 cobrado4Ticket:16 invitado4Ticket:17 cobrado3Ticket:18 cobrado8Ticket:18 info anulado porAnulado en T:21Ticket:19 cobrado8,5Ticket:20 cobrado15Ticket:20 invitado42Ticket:21 cobrado-8Ticket:21 info anulaAnula el ticket 18Ticket:22 cobrado19Ticket:23 cobrado18Ticket:24 cobrado14Venta Total de ?? invitado : 46Venta Total de ??: sin invitar 33,6Venta Total de Agente 1: sin invitar 3Venta Total de Agente 2: sin invitar 51Venta Total Invitado: 46Venta Total sin invitar: 87,6Z Descuadre1132,4Z Real en Caja2000
*Pagos y retirado los hemos juntado en uno solo pero es fail de separar desde la base de datos

Datos del Cierre

Efectivo= Total Ventas-Pend De cobro-TarjetasyCheques-Pagos-Retirado+Ingresos+Cambio inicial
Efectivo=87,6-4-2-14+200-400+1000=867,6
Al cerrar la caja hemos contado el real y en el ejemplo salen 2000 euros así que hay un descuadre positivo de: 2000-867,6=1132,4 ( que tambien aparecen en la consulta), en general los descuadres vienen de devolver mal un cambio. Y no son tan altos

Los datos de cada venta se pueden obtener de la lista de tickets, si en la SQL quitamos las agrupaciones veremos la lista de los artículos del ticket.
Registros relacionados