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:
roberto 2008-04-23 18:18:53 +00:00
parent 5577da31e9
commit 0e96cbcd47
11 changed files with 211 additions and 98 deletions

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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;

View File

@ -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.