AbetoDesign_FactuGES2/Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarAlbaranesProvFacProvUtils.pas

97 lines
2.9 KiB
ObjectPascal
Raw Blame History

unit uGenerarAlbaranesProvFacProvUtils;
interface
uses
Windows, SysUtils, Classes, uBizFacturasProveedor, pngimage, JSDialog;
type
TdmGenerarAlbaranesProv = class(TDataModule)
end;
function GenerarAlbaranProv(AFactura : IBizFacturaProveedor) : Boolean; overload;
implementation
{$R *.dfm}
uses
uDialogUtils, uDataTableUtils,
uBizAlbaranesProveedor,
uFacturasProveedorController,
uAlbaranesProveedorController;
var
dmGenerarAlbaranesProv: TdmGenerarAlbaranesProv;
AAlbaranesProveedorController : IAlbaranesProveedorController;
AFacturasProveedorController : IFacturasProveedorController;
procedure Inicializar;
begin
dmGenerarAlbaranesProv := TdmGenerarAlbaranesProv.Create(nil);
AAlbaranesProveedorController := TAlbaranesProveedorController.Create;
AFacturasProveedorController := TFacturasProveedorController.Create;
end;
procedure Finalizar;
begin
FreeAndNIL(dmGenerarAlbaranesProv);
AAlbaranesProveedorController := nil;
AFacturasProveedorController := nil;
end;
function GenerarAlbaranProv(AFactura : IBizFacturaProveedor) : Boolean; overload;
var
AAlbaranNuevo : IBizAlbaranProveedor;
begin
Result := False;
if not Assigned(AAlbaranesProveedorController) then
Inicializar;
if not Assigned(AFactura) then
raise Exception.Create('Factura de proveedor no asignada (GenerarAlbaranProv)');
if not AFactura.DataTable.Active then
AFactura.DataTable.Active := True;
try
AAlbaranNuevo := AAlbaranesProveedorController.Nuevo;
with AAlbaranNuevo do
begin
TIPO := CTE_TIPO_ALBARAN_DEV;
ID_PROVEEDOR := AFactura.ID_PROVEEDOR;
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 AAlbaranesProveedorController.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.