AbetoDesign_FactuGES2/Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarAlbaranesCliFacCliUtils.pas

96 lines
2.9 KiB
ObjectPascal
Raw Blame History

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.