Mejora en la automatizacion de generacion de facturas a partir de Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.bdsproj(pregunta la fecha que desea el usuario poner a las facturas a generar), arreglo de informe de beneficios por ventas
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@226 c93665c3-c93d-084d-9b98-7d5f4a9c3376
This commit is contained in:
parent
5577da31e9
commit
0e96cbcd47
@ -27,7 +27,7 @@ type
|
||||
function Nuevo : IBizFacturaCliente;
|
||||
function Anadir(AFactura : IBizFacturaCliente) : Boolean; overload;
|
||||
function AnadirAbono(AFactura : IBizFacturaCliente) : Boolean;
|
||||
function Anadir(AFacturas : IBizFacturaCliente; AListaAlbaranes : IBizAlbaranCliente): Boolean; overload;
|
||||
function Anadir(AFacturas : IBizFacturaCliente; AListaAlbaranes : IBizAlbaranCliente; FechaFacturaNueva:TDateTime): Boolean; overload;
|
||||
function Anadir(AFactura : IBizFacturaCliente; const IDPedido : Integer): Boolean; overload;
|
||||
|
||||
function Eliminar(const ID : Integer): Boolean; overload;
|
||||
@ -86,7 +86,7 @@ type
|
||||
function Existe(const ID: Integer) : Boolean; virtual;
|
||||
function Anadir(AFactura : IBizFacturaCliente): Boolean; overload;
|
||||
function AnadirAbono(AFactura : IBizFacturaCliente) : Boolean;
|
||||
function Anadir(AFacturas : IBizFacturaCliente; AListaAlbaranes : IBizAlbaranCliente): Boolean; overload;
|
||||
function Anadir(AFacturas : IBizFacturaCliente; AListaAlbaranes : IBizAlbaranCliente; FechaFacturaNueva:TDateTime): Boolean; overload;
|
||||
function Anadir(AFactura : IBizFacturaCliente; const IDPedido : Integer): Boolean; overload;
|
||||
function Buscar(const ID: Integer): IBizFacturaCliente;
|
||||
function BuscarTodos: IBizFacturaCliente;
|
||||
@ -232,7 +232,7 @@ begin
|
||||
end;
|
||||
|
||||
function TFacturasClienteController.Anadir(AFacturas: IBizFacturaCliente;
|
||||
AListaAlbaranes: IBizAlbaranCliente): Boolean;
|
||||
AListaAlbaranes: IBizAlbaranCliente; FechaFacturaNueva:TDateTime): Boolean;
|
||||
var
|
||||
AFacturaActual : IBizFacturaCliente;
|
||||
AAlbaranesController : IAlbaranesClienteController;
|
||||
@ -279,6 +279,9 @@ begin
|
||||
else begin
|
||||
// No hay factura de ese cliente. Creo una nueva
|
||||
Anadir(AFacturas);
|
||||
//Asignamos a la factura la fecha pasada por parametro
|
||||
AFacturas.FECHA_FACTURA := FechaFacturaNueva;
|
||||
|
||||
AAlbaranesController.RecuperarCliente(AListaAlbaranes);
|
||||
AListaAlbaranes.Cliente.DataTable.Active := True;
|
||||
AFacturas.Cliente := AListaAlbaranes.Cliente;
|
||||
@ -342,10 +345,10 @@ begin
|
||||
// Guardo la factura que acabo de generar o editar
|
||||
AFacturaActual.CalcularImporteTotal;
|
||||
Self.Guardar(AFacturaActual);
|
||||
// Asocio la factura con el albarán, y la fecha de la misma a la recepción del mismo
|
||||
// Asocio la factura con el albarán, y asigno la fecha de hoy como fecha de confirmación de recepcion
|
||||
AListaAlbaranes.Edit;
|
||||
AListaAlbaranes.ID_FACTURA := AFacturaActual.ID;
|
||||
AListaAlbaranes.FECHA_RECEPCION := AFacturaActual.FECHA_FACTURA;
|
||||
AListaAlbaranes.FECHA_RECEPCION := Date;
|
||||
AListaAlbaranes.Post;
|
||||
AAlbaranesController.Guardar(AListaAlbaranes);
|
||||
|
||||
|
||||
@ -1531,82 +1531,82 @@ object srvInfMargenArticulo: TsrvInfMargenArticulo
|
||||
'RO_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0)) * MARGEN_VENTAS.CAN' +
|
||||
'TIDAD) as IMP_NETO_PRO_COM_TOTAL,'#10#10'COALESCE(MARGEN_VENTAS.IMPORT' +
|
||||
'E_NETO, 0) - COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, COAL' +
|
||||
'ESCE(ARTICULOS.PRECIO_NETO, 0)) AS IMP_MARGEN_ULT_COMP,'#10'COALESCE' +
|
||||
'(MARGEN_VENTAS.IMPORTE_TOTAL, 0) - (COALESCE(MARGEN_COMPRAS.IMPO' +
|
||||
'RTE_NETO_ULT_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0)) * MARGEN_' +
|
||||
'VENTAS.CANTIDAD) AS IMP_MARGEN_ULT_COMP_TOTAL,'#10'CASE'#10'WHEN COALES' +
|
||||
'CE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, COALESCE(ARTICULOS.PREC' +
|
||||
'IO_NETO, 0)) = 0 THEN 100'#10'WHEN (COALESCE(MARGEN_VENTAS.IMPORTE_N' +
|
||||
'ETO, 0) - COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, COALESC' +
|
||||
'E(ARTICULOS.PRECIO_NETO, 0))) > 0 THEN'#10' ((COALESCE(MARGEN_VE' +
|
||||
'NTAS.IMPORTE_NETO, 0) - COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT' +
|
||||
'_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0))) * 100) / MARGEN_VENT' +
|
||||
'AS.IMPORTE_NETO'#10'ELSE 0'#10'END'#10'AS POR_MARGEN_ULT_COMP,'#10#10'COALESCE(MAR' +
|
||||
'GEN_VENTAS.IMPORTE_NETO, 0) - COALESCE(MARGEN_COMPRAS.IMPORTE_NE' +
|
||||
'TO_PRO_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0)) AS IMP_MARGEN_P' +
|
||||
'RO_COMP,'#10'COALESCE(MARGEN_VENTAS.IMPORTE_NETO, 0) - (COALESCE(MAR' +
|
||||
'GEN_COMPRAS.IMPORTE_NETO_PRO_COMP, COALESCE(ARTICULOS.PRECIO_NET' +
|
||||
'O, 0)) * MARGEN_VENTAS.CANTIDAD) AS IMP_MARGEN_PRO_COMP_TOTAL,'#10'C' +
|
||||
'ASE'#10'WHEN COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, COALESC' +
|
||||
'E(ARTICULOS.PRECIO_NETO, 0)) = 0 THEN 100'#10'WHEN (COALESCE(MARGEN_' +
|
||||
'VENTAS.IMPORTE_NETO, 0) - COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_P' +
|
||||
'RO_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0))) > 0 THEN'#10' ((CO' +
|
||||
'ALESCE(MARGEN_VENTAS.IMPORTE_NETO, 0) - COALESCE(MARGEN_COMPRAS.' +
|
||||
'IMPORTE_NETO_PRO_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0))) * 10' +
|
||||
'0) / MARGEN_VENTAS.IMPORTE_NETO'#10'ELSE 0'#10'END'#10'AS POR_MARGEN_PRO_COM' +
|
||||
'P'#10#10#10'FROM'#10#10#10'(SELECT'#10' FACTURAS_CLIENTE.ID_EMPRESA,'#10' FACT' +
|
||||
'URAS_CLIENTE.ID_CLIENTE,'#10' FACTURAS_CLIENTE.ID as ID_FACTURA' +
|
||||
','#10' FACTURAS_CLIENTE_DETALLES.ID as ID_DETALLE,'#10' FACTUR' +
|
||||
'AS_CLIENTE_DETALLES.ID_ARTICULO,'#10' FACTURAS_CLIENTE_DETALLES' +
|
||||
'.CANTIDAD,'#10' FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD,'#10' ' +
|
||||
' FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DE' +
|
||||
'TALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 1' +
|
||||
'00)) AS IMPORTE_NETO,'#10' FACTURAS_CLIENTE_DETALLES.IMPORTE_PO' +
|
||||
'RTE,'#10' FACTURAS_CLIENTE_DETALLES.IMPORTE_TOTAL'#10#10' FROM FAC' +
|
||||
'TURAS_CLIENTE_DETALLES'#10' LEFT OUTER JOIN FACTURAS_CLIENTE'#10' ' +
|
||||
'ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA)'#10 +
|
||||
#10' WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) A' +
|
||||
'ND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO > 0)'#10' AND (FACTUR' +
|
||||
'AS_CLIENTE_DETALLES.CANTIDAD > 0)'#10' AND (FACTURAS_CLIENTE.FE' +
|
||||
'CHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN)) MARGEN_VENTAS'#10#10#10'LE' +
|
||||
'FT JOIN'#10#10#10'(SELECT'#10' ID_EMPRESA, ID_ARTICULO, COALESCE(SUM(IMPO' +
|
||||
'RTE_UNIDAD_ULT_COMP),0) AS IMPORTE_UNIDAD_ULT_COMP, COALESCE(SUM' +
|
||||
'(IMPORTE_NETO_ULT_COMP),0) AS IMPORTE_NETO_ULT_COMP,'#10' COALESC' +
|
||||
'E(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COAL' +
|
||||
'ESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),SUM(IMPORTE_UNIDAD_ULT_COMP)) ' +
|
||||
'AS IMPORTE_UNIDAD_PRO_COMP,'#10' COALESCE(SUM(IMPORTE_NETO_PRO_CO' +
|
||||
'MP),SUM(IMPORTE_NETO_ULT_COMP)) AS IMPORTE_NETO_PRO_COMP, COALES' +
|
||||
'CE(SUM(IMPORTE_PORTE_PRO_COMP),SUM(IMPORTE_PORTE_ULT_COMP)) AS I' +
|
||||
'MPORTE_PORTE_PRO_COMP'#10#10' FROM'#10' (SELECT'#10' ID_EMPRESA, ID_ART' +
|
||||
'ICULO,'#10' IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, I' +
|
||||
'MPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPR' +
|
||||
'A AS IMPORTE_PORTE_ULT_COMP,'#10' NULL AS IMPORTE_UNIDAD_PRO_CO' +
|
||||
'MP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COM' +
|
||||
'P'#10#10' FROM V_INF_ULTCOM_PORARTICULO'#10#10' UNION ALL'#10#10' SELECT'#10 +
|
||||
' FACTURAS_PROVEEDOR.ID_EMPRESA,'#10' FACTURAS_PROVEEDOR_DE' +
|
||||
'TALLES.ID_ARTICULO,'#10' NULL, NULL, NULL,'#10' AVG(FACTURAS_P' +
|
||||
'ROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP,'#10' ' +
|
||||
' AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_P' +
|
||||
'ROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.' +
|
||||
'DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP,'#10' AVG(FACTURAS_' +
|
||||
'PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP'#10#10' ' +
|
||||
' FROM FACTURAS_PROVEEDOR_DETALLES'#10' LEFT OUTER JOIN FACTURAS_P' +
|
||||
'ROVEEDOR'#10' ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETA' +
|
||||
'LLES.ID_FACTURA)'#10#10' WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTI' +
|
||||
'CULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >' +
|
||||
' 0)'#10' AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD > 0)'#10' /' +
|
||||
'*Las compras promedio deben de calcularse desde el principio de ' +
|
||||
'los tiempos hasta ahora*/'#10' AND (FACTURAS_PROVEEDOR.FECHA_FA' +
|
||||
'CTURA BETWEEN '#39'12.12.2000'#39' AND current_date)'#10' GROUP BY 1, 2)'#10 +
|
||||
#10' GROUP BY 1, 2) MARGEN_COMPRAS'#10#10#10'ON (MARGEN_COMPRAS.ID_EMPRESA' +
|
||||
' = MARGEN_VENTAS.ID_EMPRESA)'#10'AND (MARGEN_COMPRAS.ID_ARTICULO = M' +
|
||||
'ARGEN_VENTAS.ID_ARTICULO)'#10#10#10'LEFT JOIN ARTICULOS ON (ARTICULOS.ID' +
|
||||
' = MARGEN_VENTAS.ID_ARTICULO)'#10'LEFT JOIN CONTACTOS CLIENTES ON (C' +
|
||||
'LIENTES.ID = MARGEN_VENTAS.ID_CLIENTE)'#10'LEFT JOIN CLIENTES_DATOS ' +
|
||||
'ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID)'#10'LEFT JOIN CONTACTOS' +
|
||||
' AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)'#10'LEFT JOIN FA' +
|
||||
'CTURAS_CLIENTE ON (FACTURAS_CLIENTE.ID = MARGEN_VENTAS.ID_FACTUR' +
|
||||
'A)'#10'WHERE ARTICULOS.INVENTARIABLE = 1) INF_MARGEN_ARTICULOS'
|
||||
'ESCE(ARTICULOS.PRECIO_NETO, 0)) AS IMP_MARGEN_ULT_COMP,'#10'((COALES' +
|
||||
'CE(MARGEN_VENTAS.IMPORTE_NETO, 0) - COALESCE(MARGEN_COMPRAS.IMPO' +
|
||||
'RTE_NETO_ULT_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0))) * MARGEN' +
|
||||
'_VENTAS.CANTIDAD) AS IMP_MARGEN_ULT_COMP_TOTAL,'#10'CASE'#10'WHEN COALE' +
|
||||
'SCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, COALESCE(ARTICULOS.PRE' +
|
||||
'CIO_NETO, 0)) = 0 THEN 100'#10'WHEN (COALESCE(MARGEN_VENTAS.IMPORTE_' +
|
||||
'NETO, 0) - COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, COALES' +
|
||||
'CE(ARTICULOS.PRECIO_NETO, 0))) > 0 THEN'#10' ((COALESCE(MARGEN_V' +
|
||||
'ENTAS.IMPORTE_NETO, 0) - COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_UL' +
|
||||
'T_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0))) * 100) / MARGEN_VEN' +
|
||||
'TAS.IMPORTE_NETO'#10'ELSE 0'#10'END'#10'AS POR_MARGEN_ULT_COMP,'#10#10'COALESCE(MA' +
|
||||
'RGEN_VENTAS.IMPORTE_NETO, 0) - COALESCE(MARGEN_COMPRAS.IMPORTE_N' +
|
||||
'ETO_PRO_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0)) AS IMP_MARGEN_' +
|
||||
'PRO_COMP,'#10'((COALESCE(MARGEN_VENTAS.IMPORTE_NETO, 0) - COALESCE(M' +
|
||||
'ARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, COALESCE(ARTICULOS.PRECIO_N' +
|
||||
'ETO, 0))) * MARGEN_VENTAS.CANTIDAD) AS IMP_MARGEN_PRO_COMP_TOTAL' +
|
||||
','#10'CASE'#10'WHEN COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, COAL' +
|
||||
'ESCE(ARTICULOS.PRECIO_NETO, 0)) = 0 THEN 100'#10'WHEN (COALESCE(MARG' +
|
||||
'EN_VENTAS.IMPORTE_NETO, 0) - COALESCE(MARGEN_COMPRAS.IMPORTE_NET' +
|
||||
'O_PRO_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0))) > 0 THEN'#10' (' +
|
||||
'(COALESCE(MARGEN_VENTAS.IMPORTE_NETO, 0) - COALESCE(MARGEN_COMPR' +
|
||||
'AS.IMPORTE_NETO_PRO_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0))) *' +
|
||||
' 100) / MARGEN_VENTAS.IMPORTE_NETO'#10'ELSE 0'#10'END'#10'AS POR_MARGEN_PRO_' +
|
||||
'COMP'#10#10#10'FROM'#10#10#10'(SELECT'#10' FACTURAS_CLIENTE.ID_EMPRESA,'#10' F' +
|
||||
'ACTURAS_CLIENTE.ID_CLIENTE,'#10' FACTURAS_CLIENTE.ID as ID_FACT' +
|
||||
'URA,'#10' FACTURAS_CLIENTE_DETALLES.ID as ID_DETALLE,'#10' FAC' +
|
||||
'TURAS_CLIENTE_DETALLES.ID_ARTICULO,'#10' FACTURAS_CLIENTE_DETAL' +
|
||||
'LES.CANTIDAD,'#10' FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD,'#10' ' +
|
||||
' FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE' +
|
||||
'_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO ' +
|
||||
'/ 100)) AS IMPORTE_NETO,'#10' FACTURAS_CLIENTE_DETALLES.IMPORTE' +
|
||||
'_PORTE,'#10' FACTURAS_CLIENTE_DETALLES.IMPORTE_TOTAL'#10#10' FROM ' +
|
||||
'FACTURAS_CLIENTE_DETALLES'#10' LEFT OUTER JOIN FACTURAS_CLIENTE'#10' ' +
|
||||
' ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTUR' +
|
||||
'A)'#10#10' WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL' +
|
||||
') AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO > 0)'#10' AND (FAC' +
|
||||
'TURAS_CLIENTE_DETALLES.CANTIDAD > 0)'#10' AND (FACTURAS_CLIENTE' +
|
||||
'.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN)) MARGEN_VENTAS'#10#10 +
|
||||
#10'LEFT JOIN'#10#10#10'(SELECT'#10' ID_EMPRESA, ID_ARTICULO, COALESCE(SUM(I' +
|
||||
'MPORTE_UNIDAD_ULT_COMP),0) AS IMPORTE_UNIDAD_ULT_COMP, COALESCE(' +
|
||||
'SUM(IMPORTE_NETO_ULT_COMP),0) AS IMPORTE_NETO_ULT_COMP,'#10' COAL' +
|
||||
'ESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, C' +
|
||||
'OALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),SUM(IMPORTE_UNIDAD_ULT_COMP' +
|
||||
')) AS IMPORTE_UNIDAD_PRO_COMP,'#10' COALESCE(SUM(IMPORTE_NETO_PRO' +
|
||||
'_COMP),SUM(IMPORTE_NETO_ULT_COMP)) AS IMPORTE_NETO_PRO_COMP, COA' +
|
||||
'LESCE(SUM(IMPORTE_PORTE_PRO_COMP),SUM(IMPORTE_PORTE_ULT_COMP)) A' +
|
||||
'S IMPORTE_PORTE_PRO_COMP'#10#10' FROM'#10' (SELECT'#10' ID_EMPRESA, ID_' +
|
||||
'ARTICULO,'#10' IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP' +
|
||||
', IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_CO' +
|
||||
'MPRA AS IMPORTE_PORTE_ULT_COMP,'#10' NULL AS IMPORTE_UNIDAD_PRO' +
|
||||
'_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_' +
|
||||
'COMP'#10#10' FROM V_INF_ULTCOM_PORARTICULO'#10#10' UNION ALL'#10#10' SELE' +
|
||||
'CT'#10' FACTURAS_PROVEEDOR.ID_EMPRESA,'#10' FACTURAS_PROVEEDOR' +
|
||||
'_DETALLES.ID_ARTICULO,'#10' NULL, NULL, NULL,'#10' AVG(FACTURA' +
|
||||
'S_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP,' +
|
||||
#10' AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURA' +
|
||||
'S_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALL' +
|
||||
'ES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP,'#10' AVG(FACTUR' +
|
||||
'AS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP'#10#10 +
|
||||
' FROM FACTURAS_PROVEEDOR_DETALLES'#10' LEFT OUTER JOIN FACTURA' +
|
||||
'S_PROVEEDOR'#10' ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_D' +
|
||||
'ETALLES.ID_FACTURA)'#10#10' WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_A' +
|
||||
'RTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICUL' +
|
||||
'O > 0)'#10' AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD > 0)'#10' ' +
|
||||
' /*Las compras promedio deben de calcularse desde el principio ' +
|
||||
'de los tiempos hasta ahora*/'#10' AND (FACTURAS_PROVEEDOR.FECHA' +
|
||||
'_FACTURA BETWEEN '#39'12.12.2000'#39' AND current_date)'#10' GROUP BY 1, ' +
|
||||
'2)'#10#10' GROUP BY 1, 2) MARGEN_COMPRAS'#10#10#10'ON (MARGEN_COMPRAS.ID_EMPR' +
|
||||
'ESA = MARGEN_VENTAS.ID_EMPRESA)'#10'AND (MARGEN_COMPRAS.ID_ARTICULO ' +
|
||||
'= MARGEN_VENTAS.ID_ARTICULO)'#10#10#10'LEFT JOIN ARTICULOS ON (ARTICULOS' +
|
||||
'.ID = MARGEN_VENTAS.ID_ARTICULO)'#10'LEFT JOIN CONTACTOS CLIENTES ON' +
|
||||
' (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE)'#10'LEFT JOIN CLIENTES_DAT' +
|
||||
'OS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID)'#10'LEFT JOIN CONTAC' +
|
||||
'TOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)'#10'LEFT JOIN' +
|
||||
' FACTURAS_CLIENTE ON (FACTURAS_CLIENTE.ID = MARGEN_VENTAS.ID_FAC' +
|
||||
'TURA)'#10'WHERE ARTICULOS.INVENTARIABLE = 1) INF_MARGEN_ARTICULOS'
|
||||
StatementType = stSQL
|
||||
ColumnMappings = <
|
||||
item
|
||||
|
||||
@ -169,11 +169,6 @@ inherited fEditorDetallesSinAlbaran: TfEditorDetallesSinAlbaran
|
||||
item
|
||||
Format = '0'
|
||||
Kind = skSum
|
||||
end
|
||||
item
|
||||
Format = '0 Reservados'
|
||||
Kind = skSum
|
||||
Column = frViewDetallesSinAlbaran1.cxGridViewCANTIDAD_PEDIDA
|
||||
end>
|
||||
end
|
||||
end
|
||||
@ -189,9 +184,15 @@ inherited fEditorDetallesSinAlbaran: TfEditorDetallesSinAlbaran
|
||||
ExplicitWidth = 273
|
||||
Width = 273
|
||||
end
|
||||
inherited edtFechaIniFiltro: TcxDateEdit
|
||||
ExplicitWidth = 121
|
||||
Width = 121
|
||||
end
|
||||
inherited edtFechaFinFiltro: TcxDateEdit
|
||||
Left = 412
|
||||
ExplicitLeft = 412
|
||||
Left = 413
|
||||
ExplicitLeft = 413
|
||||
ExplicitWidth = 121
|
||||
Width = 121
|
||||
end
|
||||
end
|
||||
inherited TBXAlignmentPanel1: TTBXAlignmentPanel
|
||||
|
||||
@ -170,7 +170,8 @@
|
||||
<Language Name="ActiveLang"></Language>
|
||||
<Language Name="ProjectLang">$00000000</Language>
|
||||
<Language Name="RootDir"></Language>
|
||||
</Language> <Excluded_Packages>
|
||||
</Language>
|
||||
<Excluded_Packages>
|
||||
<Excluded_Packages Name="c:\archivos de programa\borland\delphi10\Bin\dclsmp100.bpl">Borland Sample Components</Excluded_Packages>
|
||||
<Excluded_Packages Name="c:\archivos de programa\borland\delphi10\Bin\dcl31w100.bpl">Delphi 1.0 Compatibility Components</Excluded_Packages>
|
||||
<Excluded_Packages Name="c:\archivos de programa\borland\delphi10\Bin\dclmid100.bpl">Borland MyBase DataAccess Components</Excluded_Packages>
|
||||
@ -209,7 +210,7 @@
|
||||
<Excluded_Packages Name="c:\archivos de programa\borland\delphi10\Bin\dclie100.bpl">Internet Explorer Components</Excluded_Packages>
|
||||
</Excluded_Packages>
|
||||
</Delphi.Personality>
|
||||
<!-- EurekaLog First Line
|
||||
<!-- EurekaLog First Line
|
||||
[Exception Log]
|
||||
EurekaLog Version=519
|
||||
Activate=0
|
||||
|
||||
@ -44,6 +44,7 @@ requires
|
||||
|
||||
contains
|
||||
uGenerarFacturasCliAlbCliUtils in 'uGenerarFacturasCliAlbCliUtils.pas' {dmGenerarFacturasCli},
|
||||
uGenerarAlbaranesCliFacCliUtils in 'uGenerarAlbaranesCliFacCliUtils.pas' {dmGenerarAlbaranesCli};
|
||||
uGenerarAlbaranesCliFacCliUtils in 'uGenerarAlbaranesCliFacCliUtils.pas' {dmGenerarAlbaranesCli},
|
||||
uEditorFechaFactura in 'uEditorFechaFactura.pas' {fEditorFechaFactura};
|
||||
|
||||
end.
|
||||
|
||||
Binary file not shown.
@ -0,0 +1,60 @@
|
||||
object fEditorFechaFactura: TfEditorFechaFactura
|
||||
Left = 0
|
||||
Top = 0
|
||||
BorderStyle = bsToolWindow
|
||||
Caption = 'Fecha de las facturas'
|
||||
ClientHeight = 148
|
||||
ClientWidth = 371
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = []
|
||||
OldCreateOrder = False
|
||||
Position = poScreenCenter
|
||||
OnShow = FormShow
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object Label1: TLabel
|
||||
Left = 16
|
||||
Top = 16
|
||||
Width = 336
|
||||
Height = 13
|
||||
Caption =
|
||||
'Introduzca la fecha que desea para las facturas que se van a gen' +
|
||||
'erar'
|
||||
WordWrap = True
|
||||
end
|
||||
object Label2: TLabel
|
||||
Left = 24
|
||||
Top = 59
|
||||
Width = 97
|
||||
Height = 26
|
||||
Caption = 'Fecha de facturas:'
|
||||
WordWrap = True
|
||||
end
|
||||
object eFechaFactura: TcxDateEdit
|
||||
Left = 127
|
||||
Top = 56
|
||||
Style.LookAndFeel.Kind = lfStandard
|
||||
Style.LookAndFeel.NativeStyle = True
|
||||
StyleDisabled.LookAndFeel.Kind = lfStandard
|
||||
StyleDisabled.LookAndFeel.NativeStyle = True
|
||||
StyleFocused.LookAndFeel.Kind = lfStandard
|
||||
StyleFocused.LookAndFeel.NativeStyle = True
|
||||
StyleHot.LookAndFeel.Kind = lfStandard
|
||||
StyleHot.LookAndFeel.NativeStyle = True
|
||||
TabOrder = 0
|
||||
Width = 162
|
||||
end
|
||||
object Button1: TButton
|
||||
Left = 286
|
||||
Top = 110
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Continuar'
|
||||
ModalResult = 1
|
||||
TabOrder = 1
|
||||
end
|
||||
end
|
||||
@ -0,0 +1,35 @@
|
||||
unit uEditorFechaFactura;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, StdCtrls, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit,
|
||||
cxDropDownEdit, cxCalendar;
|
||||
|
||||
type
|
||||
TfEditorFechaFactura = class(TForm)
|
||||
Label1: TLabel;
|
||||
eFechaFactura: TcxDateEdit;
|
||||
Button1: TButton;
|
||||
Label2: TLabel;
|
||||
procedure FormShow(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
fEditorFechaFactura: TfEditorFechaFactura;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
procedure TfEditorFechaFactura.FormShow(Sender: TObject);
|
||||
begin
|
||||
eFechaFactura.Date := Date;
|
||||
end;
|
||||
|
||||
end.
|
||||
@ -11,7 +11,7 @@ type
|
||||
end;
|
||||
|
||||
function GenerarFacturaCli(const IDAlbaran : Integer) : Boolean; overload;
|
||||
function GenerarFacturaCli(AAlbaran : IBizAlbaranCliente) : Boolean; overload;
|
||||
function GenerarFacturaCli(AAlbaran : IBizAlbaranCliente; FechaFacturaNueva:TDateTime) : Boolean; overload;
|
||||
function GenerarFacturaCli : Boolean; overload;
|
||||
|
||||
implementation
|
||||
@ -23,7 +23,8 @@ uses
|
||||
uBizFacturasCliente,
|
||||
uBizDetallesFacturaCliente,
|
||||
uAlbaranesClienteController, uDetallesFacturaClienteController,
|
||||
uFacturasClienteController;
|
||||
uFacturasClienteController,
|
||||
uEditorFechaFactura;
|
||||
|
||||
// ,
|
||||
// , uProveedoresController,
|
||||
@ -161,7 +162,7 @@ begin
|
||||
AAlbaran := AAlbaranesClienteController.Buscar(IDAlbaran);
|
||||
|
||||
if Assigned(AAlbaran) then
|
||||
Result := GenerarFacturaCli(AAlbaran);
|
||||
Result := GenerarFacturaCli(AAlbaran, Date);
|
||||
|
||||
if Assigned(AAlbaranesClienteController) then
|
||||
Finalizar;
|
||||
@ -171,7 +172,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function GenerarFacturaCli(AAlbaran : IBizAlbaranCliente) : Boolean; overload;
|
||||
function GenerarFacturaCli(AAlbaran : IBizAlbaranCliente; FechaFacturaNueva:TDateTime) : Boolean; overload;
|
||||
var
|
||||
AFacturasNuevas : IBizFacturaCliente;
|
||||
i: Integer;
|
||||
@ -189,7 +190,7 @@ begin
|
||||
|
||||
try
|
||||
AFacturasNuevas := AFacturasClienteController.Nuevo;
|
||||
if AFacturasClienteController.Anadir(AFacturasNuevas, AAlbaran) then
|
||||
if AFacturasClienteController.Anadir(AFacturasNuevas, AAlbaran, FechaFacturaNueva) then
|
||||
begin
|
||||
if AFacturasNuevas.DataTable.RecordCount = 1 then
|
||||
begin
|
||||
@ -225,6 +226,7 @@ end;
|
||||
function GenerarFacturaCli : Boolean; overload;
|
||||
var
|
||||
AAlbaranes : IBizAlbaranCliente;
|
||||
AFechaFactura: TDateTime;
|
||||
begin
|
||||
Result := False;
|
||||
try
|
||||
@ -236,7 +238,17 @@ begin
|
||||
+ #10#13 + 'Si elige albaranes de clientes diferentes se dará de alta una factura por cada uno de ellos.' , True);
|
||||
|
||||
if Assigned(AAlbaranes) then
|
||||
Result := GenerarFacturaCli(AAlbaranes);
|
||||
begin
|
||||
//Preguntamos la fecha que deseamos tengan las facturas a generar
|
||||
with TfEditorFechaFactura.Create(Nil) do
|
||||
begin
|
||||
ShowModal;
|
||||
AFechaFactura := eFechaFactura.Date;
|
||||
Free;
|
||||
end;
|
||||
|
||||
Result := GenerarFacturaCli(AAlbaranes, AFechaFactura);
|
||||
end;
|
||||
|
||||
if Assigned(AAlbaranesClienteController) then
|
||||
Finalizar;
|
||||
|
||||
@ -16,7 +16,7 @@ BEGIN
|
||||
VALUE "FileVersion", "2.7.0.0\0"
|
||||
VALUE "ProductName", "FactuGES Server\0"
|
||||
VALUE "ProductVersion", "2.7.0.0\0"
|
||||
VALUE "CompileDate", "sábado, 19 de abril de 2008 19:15\0"
|
||||
VALUE "CompileDate", "miércoles, 23 de abril de 2008 19:22\0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user