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 Nuevo : IBizFacturaCliente;
|
||||||
function Anadir(AFactura : IBizFacturaCliente) : Boolean; overload;
|
function Anadir(AFactura : IBizFacturaCliente) : Boolean; overload;
|
||||||
function AnadirAbono(AFactura : IBizFacturaCliente) : Boolean;
|
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 Anadir(AFactura : IBizFacturaCliente; const IDPedido : Integer): Boolean; overload;
|
||||||
|
|
||||||
function Eliminar(const ID : Integer): Boolean; overload;
|
function Eliminar(const ID : Integer): Boolean; overload;
|
||||||
@ -86,7 +86,7 @@ type
|
|||||||
function Existe(const ID: Integer) : Boolean; virtual;
|
function Existe(const ID: Integer) : Boolean; virtual;
|
||||||
function Anadir(AFactura : IBizFacturaCliente): Boolean; overload;
|
function Anadir(AFactura : IBizFacturaCliente): Boolean; overload;
|
||||||
function AnadirAbono(AFactura : IBizFacturaCliente) : Boolean;
|
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 Anadir(AFactura : IBizFacturaCliente; const IDPedido : Integer): Boolean; overload;
|
||||||
function Buscar(const ID: Integer): IBizFacturaCliente;
|
function Buscar(const ID: Integer): IBizFacturaCliente;
|
||||||
function BuscarTodos: IBizFacturaCliente;
|
function BuscarTodos: IBizFacturaCliente;
|
||||||
@ -232,7 +232,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
function TFacturasClienteController.Anadir(AFacturas: IBizFacturaCliente;
|
function TFacturasClienteController.Anadir(AFacturas: IBizFacturaCliente;
|
||||||
AListaAlbaranes: IBizAlbaranCliente): Boolean;
|
AListaAlbaranes: IBizAlbaranCliente; FechaFacturaNueva:TDateTime): Boolean;
|
||||||
var
|
var
|
||||||
AFacturaActual : IBizFacturaCliente;
|
AFacturaActual : IBizFacturaCliente;
|
||||||
AAlbaranesController : IAlbaranesClienteController;
|
AAlbaranesController : IAlbaranesClienteController;
|
||||||
@ -279,6 +279,9 @@ begin
|
|||||||
else begin
|
else begin
|
||||||
// No hay factura de ese cliente. Creo una nueva
|
// No hay factura de ese cliente. Creo una nueva
|
||||||
Anadir(AFacturas);
|
Anadir(AFacturas);
|
||||||
|
//Asignamos a la factura la fecha pasada por parametro
|
||||||
|
AFacturas.FECHA_FACTURA := FechaFacturaNueva;
|
||||||
|
|
||||||
AAlbaranesController.RecuperarCliente(AListaAlbaranes);
|
AAlbaranesController.RecuperarCliente(AListaAlbaranes);
|
||||||
AListaAlbaranes.Cliente.DataTable.Active := True;
|
AListaAlbaranes.Cliente.DataTable.Active := True;
|
||||||
AFacturas.Cliente := AListaAlbaranes.Cliente;
|
AFacturas.Cliente := AListaAlbaranes.Cliente;
|
||||||
@ -342,10 +345,10 @@ begin
|
|||||||
// Guardo la factura que acabo de generar o editar
|
// Guardo la factura que acabo de generar o editar
|
||||||
AFacturaActual.CalcularImporteTotal;
|
AFacturaActual.CalcularImporteTotal;
|
||||||
Self.Guardar(AFacturaActual);
|
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.Edit;
|
||||||
AListaAlbaranes.ID_FACTURA := AFacturaActual.ID;
|
AListaAlbaranes.ID_FACTURA := AFacturaActual.ID;
|
||||||
AListaAlbaranes.FECHA_RECEPCION := AFacturaActual.FECHA_FACTURA;
|
AListaAlbaranes.FECHA_RECEPCION := Date;
|
||||||
AListaAlbaranes.Post;
|
AListaAlbaranes.Post;
|
||||||
AAlbaranesController.Guardar(AListaAlbaranes);
|
AAlbaranesController.Guardar(AListaAlbaranes);
|
||||||
|
|
||||||
|
|||||||
@ -1531,82 +1531,82 @@ object srvInfMargenArticulo: TsrvInfMargenArticulo
|
|||||||
'RO_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0)) * MARGEN_VENTAS.CAN' +
|
'RO_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0)) * MARGEN_VENTAS.CAN' +
|
||||||
'TIDAD) as IMP_NETO_PRO_COM_TOTAL,'#10#10'COALESCE(MARGEN_VENTAS.IMPORT' +
|
'TIDAD) as IMP_NETO_PRO_COM_TOTAL,'#10#10'COALESCE(MARGEN_VENTAS.IMPORT' +
|
||||||
'E_NETO, 0) - COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, COAL' +
|
'E_NETO, 0) - COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, COAL' +
|
||||||
'ESCE(ARTICULOS.PRECIO_NETO, 0)) AS IMP_MARGEN_ULT_COMP,'#10'COALESCE' +
|
'ESCE(ARTICULOS.PRECIO_NETO, 0)) AS IMP_MARGEN_ULT_COMP,'#10'((COALES' +
|
||||||
'(MARGEN_VENTAS.IMPORTE_TOTAL, 0) - (COALESCE(MARGEN_COMPRAS.IMPO' +
|
'CE(MARGEN_VENTAS.IMPORTE_NETO, 0) - COALESCE(MARGEN_COMPRAS.IMPO' +
|
||||||
'RTE_NETO_ULT_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0)) * MARGEN_' +
|
'RTE_NETO_ULT_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0))) * MARGEN' +
|
||||||
'VENTAS.CANTIDAD) AS IMP_MARGEN_ULT_COMP_TOTAL,'#10'CASE'#10'WHEN COALES' +
|
'_VENTAS.CANTIDAD) AS IMP_MARGEN_ULT_COMP_TOTAL,'#10'CASE'#10'WHEN COALE' +
|
||||||
'CE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, COALESCE(ARTICULOS.PREC' +
|
'SCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, COALESCE(ARTICULOS.PRE' +
|
||||||
'IO_NETO, 0)) = 0 THEN 100'#10'WHEN (COALESCE(MARGEN_VENTAS.IMPORTE_N' +
|
'CIO_NETO, 0)) = 0 THEN 100'#10'WHEN (COALESCE(MARGEN_VENTAS.IMPORTE_' +
|
||||||
'ETO, 0) - COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, COALESC' +
|
'NETO, 0) - COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, COALES' +
|
||||||
'E(ARTICULOS.PRECIO_NETO, 0))) > 0 THEN'#10' ((COALESCE(MARGEN_VE' +
|
'CE(ARTICULOS.PRECIO_NETO, 0))) > 0 THEN'#10' ((COALESCE(MARGEN_V' +
|
||||||
'NTAS.IMPORTE_NETO, 0) - COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT' +
|
'ENTAS.IMPORTE_NETO, 0) - COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_UL' +
|
||||||
'_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0))) * 100) / MARGEN_VENT' +
|
'T_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0))) * 100) / MARGEN_VEN' +
|
||||||
'AS.IMPORTE_NETO'#10'ELSE 0'#10'END'#10'AS POR_MARGEN_ULT_COMP,'#10#10'COALESCE(MAR' +
|
'TAS.IMPORTE_NETO'#10'ELSE 0'#10'END'#10'AS POR_MARGEN_ULT_COMP,'#10#10'COALESCE(MA' +
|
||||||
'GEN_VENTAS.IMPORTE_NETO, 0) - COALESCE(MARGEN_COMPRAS.IMPORTE_NE' +
|
'RGEN_VENTAS.IMPORTE_NETO, 0) - COALESCE(MARGEN_COMPRAS.IMPORTE_N' +
|
||||||
'TO_PRO_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0)) AS IMP_MARGEN_P' +
|
'ETO_PRO_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0)) AS IMP_MARGEN_' +
|
||||||
'RO_COMP,'#10'COALESCE(MARGEN_VENTAS.IMPORTE_NETO, 0) - (COALESCE(MAR' +
|
'PRO_COMP,'#10'((COALESCE(MARGEN_VENTAS.IMPORTE_NETO, 0) - COALESCE(M' +
|
||||||
'GEN_COMPRAS.IMPORTE_NETO_PRO_COMP, COALESCE(ARTICULOS.PRECIO_NET' +
|
'ARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, COALESCE(ARTICULOS.PRECIO_N' +
|
||||||
'O, 0)) * MARGEN_VENTAS.CANTIDAD) AS IMP_MARGEN_PRO_COMP_TOTAL,'#10'C' +
|
'ETO, 0))) * MARGEN_VENTAS.CANTIDAD) AS IMP_MARGEN_PRO_COMP_TOTAL' +
|
||||||
'ASE'#10'WHEN COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, COALESC' +
|
','#10'CASE'#10'WHEN COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, COAL' +
|
||||||
'E(ARTICULOS.PRECIO_NETO, 0)) = 0 THEN 100'#10'WHEN (COALESCE(MARGEN_' +
|
'ESCE(ARTICULOS.PRECIO_NETO, 0)) = 0 THEN 100'#10'WHEN (COALESCE(MARG' +
|
||||||
'VENTAS.IMPORTE_NETO, 0) - COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_P' +
|
'EN_VENTAS.IMPORTE_NETO, 0) - COALESCE(MARGEN_COMPRAS.IMPORTE_NET' +
|
||||||
'RO_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0))) > 0 THEN'#10' ((CO' +
|
'O_PRO_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0))) > 0 THEN'#10' (' +
|
||||||
'ALESCE(MARGEN_VENTAS.IMPORTE_NETO, 0) - COALESCE(MARGEN_COMPRAS.' +
|
'(COALESCE(MARGEN_VENTAS.IMPORTE_NETO, 0) - COALESCE(MARGEN_COMPR' +
|
||||||
'IMPORTE_NETO_PRO_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0))) * 10' +
|
'AS.IMPORTE_NETO_PRO_COMP, COALESCE(ARTICULOS.PRECIO_NETO, 0))) *' +
|
||||||
'0) / MARGEN_VENTAS.IMPORTE_NETO'#10'ELSE 0'#10'END'#10'AS POR_MARGEN_PRO_COM' +
|
' 100) / MARGEN_VENTAS.IMPORTE_NETO'#10'ELSE 0'#10'END'#10'AS POR_MARGEN_PRO_' +
|
||||||
'P'#10#10#10'FROM'#10#10#10'(SELECT'#10' FACTURAS_CLIENTE.ID_EMPRESA,'#10' FACT' +
|
'COMP'#10#10#10'FROM'#10#10#10'(SELECT'#10' FACTURAS_CLIENTE.ID_EMPRESA,'#10' F' +
|
||||||
'URAS_CLIENTE.ID_CLIENTE,'#10' FACTURAS_CLIENTE.ID as ID_FACTURA' +
|
'ACTURAS_CLIENTE.ID_CLIENTE,'#10' FACTURAS_CLIENTE.ID as ID_FACT' +
|
||||||
','#10' FACTURAS_CLIENTE_DETALLES.ID as ID_DETALLE,'#10' FACTUR' +
|
'URA,'#10' FACTURAS_CLIENTE_DETALLES.ID as ID_DETALLE,'#10' FAC' +
|
||||||
'AS_CLIENTE_DETALLES.ID_ARTICULO,'#10' FACTURAS_CLIENTE_DETALLES' +
|
'TURAS_CLIENTE_DETALLES.ID_ARTICULO,'#10' FACTURAS_CLIENTE_DETAL' +
|
||||||
'.CANTIDAD,'#10' FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD,'#10' ' +
|
'LES.CANTIDAD,'#10' FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD,'#10' ' +
|
||||||
' FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DE' +
|
' FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE' +
|
||||||
'TALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 1' +
|
'_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO ' +
|
||||||
'00)) AS IMPORTE_NETO,'#10' FACTURAS_CLIENTE_DETALLES.IMPORTE_PO' +
|
'/ 100)) AS IMPORTE_NETO,'#10' FACTURAS_CLIENTE_DETALLES.IMPORTE' +
|
||||||
'RTE,'#10' FACTURAS_CLIENTE_DETALLES.IMPORTE_TOTAL'#10#10' FROM FAC' +
|
'_PORTE,'#10' FACTURAS_CLIENTE_DETALLES.IMPORTE_TOTAL'#10#10' FROM ' +
|
||||||
'TURAS_CLIENTE_DETALLES'#10' LEFT OUTER JOIN FACTURAS_CLIENTE'#10' ' +
|
'FACTURAS_CLIENTE_DETALLES'#10' LEFT OUTER JOIN FACTURAS_CLIENTE'#10' ' +
|
||||||
'ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA)'#10 +
|
' ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTUR' +
|
||||||
#10' WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) A' +
|
'A)'#10#10' WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL' +
|
||||||
'ND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO > 0)'#10' AND (FACTUR' +
|
') AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO > 0)'#10' AND (FAC' +
|
||||||
'AS_CLIENTE_DETALLES.CANTIDAD > 0)'#10' AND (FACTURAS_CLIENTE.FE' +
|
'TURAS_CLIENTE_DETALLES.CANTIDAD > 0)'#10' AND (FACTURAS_CLIENTE' +
|
||||||
'CHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN)) MARGEN_VENTAS'#10#10#10'LE' +
|
'.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN)) MARGEN_VENTAS'#10#10 +
|
||||||
'FT JOIN'#10#10#10'(SELECT'#10' ID_EMPRESA, ID_ARTICULO, COALESCE(SUM(IMPO' +
|
#10'LEFT JOIN'#10#10#10'(SELECT'#10' ID_EMPRESA, ID_ARTICULO, COALESCE(SUM(I' +
|
||||||
'RTE_UNIDAD_ULT_COMP),0) AS IMPORTE_UNIDAD_ULT_COMP, COALESCE(SUM' +
|
'MPORTE_UNIDAD_ULT_COMP),0) AS IMPORTE_UNIDAD_ULT_COMP, COALESCE(' +
|
||||||
'(IMPORTE_NETO_ULT_COMP),0) AS IMPORTE_NETO_ULT_COMP,'#10' COALESC' +
|
'SUM(IMPORTE_NETO_ULT_COMP),0) AS IMPORTE_NETO_ULT_COMP,'#10' COAL' +
|
||||||
'E(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COAL' +
|
'ESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, C' +
|
||||||
'ESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),SUM(IMPORTE_UNIDAD_ULT_COMP)) ' +
|
'OALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),SUM(IMPORTE_UNIDAD_ULT_COMP' +
|
||||||
'AS IMPORTE_UNIDAD_PRO_COMP,'#10' COALESCE(SUM(IMPORTE_NETO_PRO_CO' +
|
')) AS IMPORTE_UNIDAD_PRO_COMP,'#10' COALESCE(SUM(IMPORTE_NETO_PRO' +
|
||||||
'MP),SUM(IMPORTE_NETO_ULT_COMP)) AS IMPORTE_NETO_PRO_COMP, COALES' +
|
'_COMP),SUM(IMPORTE_NETO_ULT_COMP)) AS IMPORTE_NETO_PRO_COMP, COA' +
|
||||||
'CE(SUM(IMPORTE_PORTE_PRO_COMP),SUM(IMPORTE_PORTE_ULT_COMP)) AS I' +
|
'LESCE(SUM(IMPORTE_PORTE_PRO_COMP),SUM(IMPORTE_PORTE_ULT_COMP)) A' +
|
||||||
'MPORTE_PORTE_PRO_COMP'#10#10' FROM'#10' (SELECT'#10' ID_EMPRESA, ID_ART' +
|
'S IMPORTE_PORTE_PRO_COMP'#10#10' FROM'#10' (SELECT'#10' ID_EMPRESA, ID_' +
|
||||||
'ICULO,'#10' IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, I' +
|
'ARTICULO,'#10' IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP' +
|
||||||
'MPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPR' +
|
', IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_CO' +
|
||||||
'A AS IMPORTE_PORTE_ULT_COMP,'#10' NULL AS IMPORTE_UNIDAD_PRO_CO' +
|
'MPRA AS IMPORTE_PORTE_ULT_COMP,'#10' NULL AS IMPORTE_UNIDAD_PRO' +
|
||||||
'MP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COM' +
|
'_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_' +
|
||||||
'P'#10#10' FROM V_INF_ULTCOM_PORARTICULO'#10#10' UNION ALL'#10#10' SELECT'#10 +
|
'COMP'#10#10' FROM V_INF_ULTCOM_PORARTICULO'#10#10' UNION ALL'#10#10' SELE' +
|
||||||
' FACTURAS_PROVEEDOR.ID_EMPRESA,'#10' FACTURAS_PROVEEDOR_DE' +
|
'CT'#10' FACTURAS_PROVEEDOR.ID_EMPRESA,'#10' FACTURAS_PROVEEDOR' +
|
||||||
'TALLES.ID_ARTICULO,'#10' NULL, NULL, NULL,'#10' AVG(FACTURAS_P' +
|
'_DETALLES.ID_ARTICULO,'#10' NULL, NULL, NULL,'#10' AVG(FACTURA' +
|
||||||
'ROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP,'#10' ' +
|
'S_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP,' +
|
||||||
' AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_P' +
|
#10' AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURA' +
|
||||||
'ROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.' +
|
'S_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALL' +
|
||||||
'DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP,'#10' AVG(FACTURAS_' +
|
'ES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP,'#10' AVG(FACTUR' +
|
||||||
'PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP'#10#10' ' +
|
'AS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP'#10#10 +
|
||||||
' FROM FACTURAS_PROVEEDOR_DETALLES'#10' LEFT OUTER JOIN FACTURAS_P' +
|
' FROM FACTURAS_PROVEEDOR_DETALLES'#10' LEFT OUTER JOIN FACTURA' +
|
||||||
'ROVEEDOR'#10' ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETA' +
|
'S_PROVEEDOR'#10' ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_D' +
|
||||||
'LLES.ID_FACTURA)'#10#10' WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTI' +
|
'ETALLES.ID_FACTURA)'#10#10' WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_A' +
|
||||||
'CULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >' +
|
'RTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICUL' +
|
||||||
' 0)'#10' AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD > 0)'#10' /' +
|
'O > 0)'#10' AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD > 0)'#10' ' +
|
||||||
'*Las compras promedio deben de calcularse desde el principio de ' +
|
' /*Las compras promedio deben de calcularse desde el principio ' +
|
||||||
'los tiempos hasta ahora*/'#10' AND (FACTURAS_PROVEEDOR.FECHA_FA' +
|
'de los tiempos hasta ahora*/'#10' AND (FACTURAS_PROVEEDOR.FECHA' +
|
||||||
'CTURA BETWEEN '#39'12.12.2000'#39' AND current_date)'#10' GROUP BY 1, 2)'#10 +
|
'_FACTURA BETWEEN '#39'12.12.2000'#39' AND current_date)'#10' GROUP BY 1, ' +
|
||||||
#10' GROUP BY 1, 2) MARGEN_COMPRAS'#10#10#10'ON (MARGEN_COMPRAS.ID_EMPRESA' +
|
'2)'#10#10' GROUP BY 1, 2) MARGEN_COMPRAS'#10#10#10'ON (MARGEN_COMPRAS.ID_EMPR' +
|
||||||
' = MARGEN_VENTAS.ID_EMPRESA)'#10'AND (MARGEN_COMPRAS.ID_ARTICULO = M' +
|
'ESA = MARGEN_VENTAS.ID_EMPRESA)'#10'AND (MARGEN_COMPRAS.ID_ARTICULO ' +
|
||||||
'ARGEN_VENTAS.ID_ARTICULO)'#10#10#10'LEFT JOIN ARTICULOS ON (ARTICULOS.ID' +
|
'= MARGEN_VENTAS.ID_ARTICULO)'#10#10#10'LEFT JOIN ARTICULOS ON (ARTICULOS' +
|
||||||
' = MARGEN_VENTAS.ID_ARTICULO)'#10'LEFT JOIN CONTACTOS CLIENTES ON (C' +
|
'.ID = MARGEN_VENTAS.ID_ARTICULO)'#10'LEFT JOIN CONTACTOS CLIENTES ON' +
|
||||||
'LIENTES.ID = MARGEN_VENTAS.ID_CLIENTE)'#10'LEFT JOIN CLIENTES_DATOS ' +
|
' (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE)'#10'LEFT JOIN CLIENTES_DAT' +
|
||||||
'ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID)'#10'LEFT JOIN CONTACTOS' +
|
'OS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID)'#10'LEFT JOIN CONTAC' +
|
||||||
' AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)'#10'LEFT JOIN FA' +
|
'TOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)'#10'LEFT JOIN' +
|
||||||
'CTURAS_CLIENTE ON (FACTURAS_CLIENTE.ID = MARGEN_VENTAS.ID_FACTUR' +
|
' FACTURAS_CLIENTE ON (FACTURAS_CLIENTE.ID = MARGEN_VENTAS.ID_FAC' +
|
||||||
'A)'#10'WHERE ARTICULOS.INVENTARIABLE = 1) INF_MARGEN_ARTICULOS'
|
'TURA)'#10'WHERE ARTICULOS.INVENTARIABLE = 1) INF_MARGEN_ARTICULOS'
|
||||||
StatementType = stSQL
|
StatementType = stSQL
|
||||||
ColumnMappings = <
|
ColumnMappings = <
|
||||||
item
|
item
|
||||||
|
|||||||
@ -169,11 +169,6 @@ inherited fEditorDetallesSinAlbaran: TfEditorDetallesSinAlbaran
|
|||||||
item
|
item
|
||||||
Format = '0'
|
Format = '0'
|
||||||
Kind = skSum
|
Kind = skSum
|
||||||
end
|
|
||||||
item
|
|
||||||
Format = '0 Reservados'
|
|
||||||
Kind = skSum
|
|
||||||
Column = frViewDetallesSinAlbaran1.cxGridViewCANTIDAD_PEDIDA
|
|
||||||
end>
|
end>
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -189,9 +184,15 @@ inherited fEditorDetallesSinAlbaran: TfEditorDetallesSinAlbaran
|
|||||||
ExplicitWidth = 273
|
ExplicitWidth = 273
|
||||||
Width = 273
|
Width = 273
|
||||||
end
|
end
|
||||||
|
inherited edtFechaIniFiltro: TcxDateEdit
|
||||||
|
ExplicitWidth = 121
|
||||||
|
Width = 121
|
||||||
|
end
|
||||||
inherited edtFechaFinFiltro: TcxDateEdit
|
inherited edtFechaFinFiltro: TcxDateEdit
|
||||||
Left = 412
|
Left = 413
|
||||||
ExplicitLeft = 412
|
ExplicitLeft = 413
|
||||||
|
ExplicitWidth = 121
|
||||||
|
Width = 121
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
inherited TBXAlignmentPanel1: TTBXAlignmentPanel
|
inherited TBXAlignmentPanel1: TTBXAlignmentPanel
|
||||||
|
|||||||
@ -170,7 +170,8 @@
|
|||||||
<Language Name="ActiveLang"></Language>
|
<Language Name="ActiveLang"></Language>
|
||||||
<Language Name="ProjectLang">$00000000</Language>
|
<Language Name="ProjectLang">$00000000</Language>
|
||||||
<Language Name="RootDir"></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\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\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>
|
<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 Name="c:\archivos de programa\borland\delphi10\Bin\dclie100.bpl">Internet Explorer Components</Excluded_Packages>
|
||||||
</Excluded_Packages>
|
</Excluded_Packages>
|
||||||
</Delphi.Personality>
|
</Delphi.Personality>
|
||||||
<!-- EurekaLog First Line
|
<!-- EurekaLog First Line
|
||||||
[Exception Log]
|
[Exception Log]
|
||||||
EurekaLog Version=519
|
EurekaLog Version=519
|
||||||
Activate=0
|
Activate=0
|
||||||
|
|||||||
@ -44,6 +44,7 @@ requires
|
|||||||
|
|
||||||
contains
|
contains
|
||||||
uGenerarFacturasCliAlbCliUtils in 'uGenerarFacturasCliAlbCliUtils.pas' {dmGenerarFacturasCli},
|
uGenerarFacturasCliAlbCliUtils in 'uGenerarFacturasCliAlbCliUtils.pas' {dmGenerarFacturasCli},
|
||||||
uGenerarAlbaranesCliFacCliUtils in 'uGenerarAlbaranesCliFacCliUtils.pas' {dmGenerarAlbaranesCli};
|
uGenerarAlbaranesCliFacCliUtils in 'uGenerarAlbaranesCliFacCliUtils.pas' {dmGenerarAlbaranesCli},
|
||||||
|
uEditorFechaFactura in 'uEditorFechaFactura.pas' {fEditorFechaFactura};
|
||||||
|
|
||||||
end.
|
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;
|
end;
|
||||||
|
|
||||||
function GenerarFacturaCli(const IDAlbaran : Integer) : Boolean; overload;
|
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;
|
function GenerarFacturaCli : Boolean; overload;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -23,7 +23,8 @@ uses
|
|||||||
uBizFacturasCliente,
|
uBizFacturasCliente,
|
||||||
uBizDetallesFacturaCliente,
|
uBizDetallesFacturaCliente,
|
||||||
uAlbaranesClienteController, uDetallesFacturaClienteController,
|
uAlbaranesClienteController, uDetallesFacturaClienteController,
|
||||||
uFacturasClienteController;
|
uFacturasClienteController,
|
||||||
|
uEditorFechaFactura;
|
||||||
|
|
||||||
// ,
|
// ,
|
||||||
// , uProveedoresController,
|
// , uProveedoresController,
|
||||||
@ -161,7 +162,7 @@ begin
|
|||||||
AAlbaran := AAlbaranesClienteController.Buscar(IDAlbaran);
|
AAlbaran := AAlbaranesClienteController.Buscar(IDAlbaran);
|
||||||
|
|
||||||
if Assigned(AAlbaran) then
|
if Assigned(AAlbaran) then
|
||||||
Result := GenerarFacturaCli(AAlbaran);
|
Result := GenerarFacturaCli(AAlbaran, Date);
|
||||||
|
|
||||||
if Assigned(AAlbaranesClienteController) then
|
if Assigned(AAlbaranesClienteController) then
|
||||||
Finalizar;
|
Finalizar;
|
||||||
@ -171,7 +172,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function GenerarFacturaCli(AAlbaran : IBizAlbaranCliente) : Boolean; overload;
|
function GenerarFacturaCli(AAlbaran : IBizAlbaranCliente; FechaFacturaNueva:TDateTime) : Boolean; overload;
|
||||||
var
|
var
|
||||||
AFacturasNuevas : IBizFacturaCliente;
|
AFacturasNuevas : IBizFacturaCliente;
|
||||||
i: Integer;
|
i: Integer;
|
||||||
@ -189,7 +190,7 @@ begin
|
|||||||
|
|
||||||
try
|
try
|
||||||
AFacturasNuevas := AFacturasClienteController.Nuevo;
|
AFacturasNuevas := AFacturasClienteController.Nuevo;
|
||||||
if AFacturasClienteController.Anadir(AFacturasNuevas, AAlbaran) then
|
if AFacturasClienteController.Anadir(AFacturasNuevas, AAlbaran, FechaFacturaNueva) then
|
||||||
begin
|
begin
|
||||||
if AFacturasNuevas.DataTable.RecordCount = 1 then
|
if AFacturasNuevas.DataTable.RecordCount = 1 then
|
||||||
begin
|
begin
|
||||||
@ -225,6 +226,7 @@ end;
|
|||||||
function GenerarFacturaCli : Boolean; overload;
|
function GenerarFacturaCli : Boolean; overload;
|
||||||
var
|
var
|
||||||
AAlbaranes : IBizAlbaranCliente;
|
AAlbaranes : IBizAlbaranCliente;
|
||||||
|
AFechaFactura: TDateTime;
|
||||||
begin
|
begin
|
||||||
Result := False;
|
Result := False;
|
||||||
try
|
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);
|
+ #10#13 + 'Si elige albaranes de clientes diferentes se dará de alta una factura por cada uno de ellos.' , True);
|
||||||
|
|
||||||
if Assigned(AAlbaranes) then
|
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
|
if Assigned(AAlbaranesClienteController) then
|
||||||
Finalizar;
|
Finalizar;
|
||||||
|
|||||||
@ -16,7 +16,7 @@ BEGIN
|
|||||||
VALUE "FileVersion", "2.7.0.0\0"
|
VALUE "FileVersion", "2.7.0.0\0"
|
||||||
VALUE "ProductName", "FactuGES Server\0"
|
VALUE "ProductName", "FactuGES Server\0"
|
||||||
VALUE "ProductVersion", "2.7.0.0\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
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user