96 lines
2.9 KiB
ObjectPascal
96 lines
2.9 KiB
ObjectPascal
|
|
unit uGenerarAlbaranesCliFacCliUtils;
|
|||
|
|
|
|||
|
|
interface
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
Windows, SysUtils, Classes, uBizFacturasCliente, pngimage, JSDialog;
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
TdmGenerarAlbaranesCli = class(TDataModule)
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function GenerarAlbaranCli(AFactura : IBizFacturaCliente) : Boolean; overload;
|
|||
|
|
|
|||
|
|
implementation
|
|||
|
|
|
|||
|
|
{$R *.dfm}
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
uDialogUtils, uDataTableUtils,
|
|||
|
|
uBizAlbaranesCliente,
|
|||
|
|
uAlbaranesClienteController,
|
|||
|
|
uFacturasClienteController;
|
|||
|
|
|
|||
|
|
var
|
|||
|
|
dmGenerarAlbaranesCli: TdmGenerarAlbaranesCli;
|
|||
|
|
AFacturasClienteController : IFacturasClienteController;
|
|||
|
|
AAlbaranesClienteController : IAlbaranesClienteController;
|
|||
|
|
|
|||
|
|
procedure Inicializar;
|
|||
|
|
begin
|
|||
|
|
dmGenerarAlbaranesCli := TdmGenerarAlbaranesCli.Create(nil);
|
|||
|
|
AFacturasClienteController := TFacturasClienteController.Create;
|
|||
|
|
AAlbaranesClienteController := TAlbaranesClienteController.Create;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure Finalizar;
|
|||
|
|
begin
|
|||
|
|
FreeAndNIL(dmGenerarAlbaranesCli);
|
|||
|
|
AFacturasClienteController := nil;
|
|||
|
|
AAlbaranesClienteController := nil;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function GenerarAlbaranCli(AFactura : IBizFacturaCliente) : Boolean; overload;
|
|||
|
|
var
|
|||
|
|
AAlbaranNuevo : IBizAlbaranCliente;
|
|||
|
|
begin
|
|||
|
|
Result := False;
|
|||
|
|
|
|||
|
|
if not Assigned(AAlbaranesClienteController) then
|
|||
|
|
Inicializar;
|
|||
|
|
|
|||
|
|
if not Assigned(AFactura) then
|
|||
|
|
raise Exception.Create('Factura de cliente no asignada (GenerarAlbaranCli)');
|
|||
|
|
|
|||
|
|
if not AFactura.DataTable.Active then
|
|||
|
|
AFactura.DataTable.Active := True;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
AAlbaranNuevo := AAlbaranesClienteController.Nuevo;
|
|||
|
|
|
|||
|
|
with AAlbaranNuevo do
|
|||
|
|
begin
|
|||
|
|
TIPO := CTE_TIPO_ALBARAN_DEV;
|
|||
|
|
ID_CLIENTE := AFactura.ID_CLIENTE;
|
|||
|
|
CALLE := AFactura.CALLE;
|
|||
|
|
CODIGO_POSTAL := AFactura.CODIGO_POSTAL;
|
|||
|
|
POBLACION := AFactura.POBLACION;
|
|||
|
|
PROVINCIA := AFactura.PROVINCIA;
|
|||
|
|
// AAlbaran.PERSONA_CONTACTO := AFactura.PERSONA_CONTACTO;
|
|||
|
|
// AAlbaran.TELEFONO := AFactura.TELEFONO;
|
|||
|
|
IMPORTE_NETO := AFactura.IMPORTE_NETO;
|
|||
|
|
IMPORTE_PORTE := AFactura.IMPORTE_PORTE;
|
|||
|
|
DESCUENTO := AFactura.DESCUENTO;
|
|||
|
|
IMPORTE_DESCUENTO := AFactura.IMPORTE_DESCUENTO;
|
|||
|
|
BASE_IMPONIBLE := AFactura.BASE_IMPONIBLE;
|
|||
|
|
IVA := AFactura.IVA;
|
|||
|
|
IMPORTE_IVA := AFactura.IMPORTE_IVA;
|
|||
|
|
IMPORTE_TOTAL := AFactura.IMPORTE_TOTAL;
|
|||
|
|
// AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorOBSERVACIONES).AsVariant := AFactura.DataTable.FieldByName(fld_PedidosProveedorOBSERVACIONES).AsVariant;
|
|||
|
|
ID_FORMA_PAGO := AFactura.ID_FORMA_PAGO;
|
|||
|
|
ID_FACTURA := AFactura.ID;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
DuplicarRegistros(AFactura.Detalles.DataTable, AAlbaranNuevo.Detalles.DataTable, mdrTodos);
|
|||
|
|
|
|||
|
|
//Sustituir por if de guardar
|
|||
|
|
if AAlbaranesClienteController.Guardar(AAlbaranNuevo) then
|
|||
|
|
ShowInfoMessage('La orden de devoluci<63>n se ha dado de alta con el c<>digo ' + AAlbaranNuevo.REFERENCIA);
|
|||
|
|
|
|||
|
|
finally
|
|||
|
|
AAlbaranNuevo := Nil;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end.
|