This repository has been archived on 2024-12-02. You can view files and clone it, but cannot push or open issues or pull requests.
AlonsoYSal_FactuGES/Modulos/Facturas de proveedor/Cliente/uDataModuleFacturasProveedor.pas

185 lines
5.5 KiB
ObjectPascal
Raw Blame History

unit uDataModuleFacturasProveedor;
interface
uses {vcl:} SysUtils, Classes, DB, DBClient,
{RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
uDADesigntimeCall, uBizFacturasProveedor;
type
TdmFacturasProveedor = class(TDAClientDataModule)
RORemoteService: TRORemoteService;
tbl_FacturasProveedor: TDACDSDataTable;
ds_FacturasProveedor: TDADataSource;
DADesigntimeCall1: TDADesigntimeCall;
tbl_ListaAnosFacturas: TDACDSDataTable;
ds_ListaAnosFacturas: TDADataSource;
procedure DAClientDataModuleCreate(Sender: TObject);
private
{ Private declarations }
public
function GetNextAutoinc : integer;
function GetItem: IBizFacturasProveedor;
function GetItems: IBizFacturasProveedor;
function PuedoEliminarFactura (CodigoFactura : Integer) : Boolean;
function DarListaAnosFacturas: TStringList;
procedure FiltrarAno(AFacturas: IBizFacturasProveedor; AWhereDataTable: String; const Ano: String);
end;
var
dmFacturasProveedor: TdmFacturasProveedor;
implementation
{$R *.DFM}
uses
Forms, Controls, cxControls, uDataTableUtils, uBizContacto,
uDataModuleContactos, uDataModuleBase, uDAInterfaces,
FactuGES_Intf, uEditorPreview, uROTypes, schFacturasProveedorClient_Intf;
{ TDAClientDataModule1 }
function TdmFacturasProveedor.GetItems: IBizFacturasProveedor;
var
dtCabecera: TDACDSDataTable;
ACursor: TCursor;
begin
ACursor := Screen.Cursor;
Screen.Cursor := crHourGlass;
try
dtCabecera := TDACDSDataTable.Create(NIL);
CloneDataTable(tbl_FacturasProveedor, dtCabecera);
with dtCabecera do
begin
BusinessRulesID := BIZ_FACTURASPROVEEDOR;
FieldByName(fld_FacturasProveedorDESCUENTO).BusinessRulesID := 'Client.Field.Descuento';
FieldByName(fld_FacturasProveedorIVA).BusinessRulesID := 'Client.Field.IVA';
FieldByName(fld_FacturasProveedorBASEIMPONIBLE).BusinessRulesID := 'Client.Field.BaseImponible';
end;
Result := (dtCabecera as IBizFacturasProveedor);
finally
Screen.Cursor := ACursor;
end;
end;
procedure TdmFacturasProveedor.DAClientDataModuleCreate(Sender: TObject);
begin
RORemoteService.Channel := dmBase.Channel;
RORemoteService.Message := dmBase.Message;
Adapter := dmBase.Adapter;
end;
function TdmFacturasProveedor.GetItem: IBizFacturasProveedor;
var
dtCabecera: TDACDSDataTable;
dtDetalles: TDACDSDataTable;
ACursor: TCursor;
begin
{ ACursor := Screen.Cursor;
Screen.Cursor := crHourGlass;
try
dtCabecera := TDACDSDataTable.Create(NIL);
CloneDataTable(tbl_AlbaranCliente, dtCabecera);
with dtCabecera do
begin
BusinessRulesID := BIZ_ALBARANCLIENTE;
FieldByName(fld_AlbaranClienteDESCUENTO).BusinessRulesID := 'Client.Field.Descuento';
FieldByName(fld_AlbaranClienteIVA).BusinessRulesID := 'Client.Field.IVA';
end;
dtDetalles := TDACDSDataTable.Create(NIL);
CloneDataTable(tbl_DetallesAlbaranProveedor, dtDetalles);
with dtDetalles do
begin
BusinessRulesID := BIZ_DETALLESALBARANCLIENTE;
DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
FieldByName(fld_DetallesAlbaranClienteCANTIDAD).BusinessRulesID := 'Client.Field.Cantidad';
FieldByName(fld_DetallesAlbaranClienteIMPORTEUNIDAD).BusinessRulesID := 'Client.Field.ImporteUnidad';
FieldByName(fld_DetallesAlbaranClienteTIPO).BusinessRulesID := 'Client.Field.TipoDetalle';
end;
with (dtAlbaranes as IBizAlbaranesCliente) do
begin
Detalles := (dtDetalles as IBizDetallesAlbaranCliente);
end;
Result := (dtAlbaranes as IBizAlbaranesCliente);
finally
Screen.Cursor := ACursor;
end;}
end;
function TdmFacturasProveedor.GetNextAutoinc: integer;
begin
Result := (RORemoteService as IsrvFacturasProveedor).GetNextAutoinc;
end;
function TdmFacturasProveedor.PuedoEliminarFactura(CodigoFactura: Integer): Boolean;
begin
Result := (RORemoteService as IsrvFacturasProveedor).PuedoEliminarFactura(CodigoFactura);
end;
function TdmFacturasProveedor.DarListaAnosFacturas: TStringList;
var
AListaAnos: TStringList;
begin
AListaAnos := TStringList.Create;
ShowHourglassCursor;
try
with tbl_ListaAnosFacturas do
begin
Open;
First;
while not eof do
begin
AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString]));
Next;
end;
Close;
end;
Result := AListaAnos;
finally
HideHourglassCursor;
end;
end;
procedure TdmFacturasProveedor.FiltrarAno(AFacturas: IBizFacturasProveedor; AWhereDataTable: String; const Ano: String);
var
FechaIni: String;
FechaFin: String;
begin
AFacturas.DataTable.Where.Clear;
AFacturas.DataTable.Where.AddText(AWhereDataTable);
if (Ano <> 'Todos') then
begin
// Filtrar los presupuestos actuales por a<>os
FechaIni := '01.01.' + Ano;
FechaFin := '31.12.' + Ano;
with AFacturas.DataTable.Where do
begin
if NotEmpty then
AddOperator(opAND);
AddCondition(fld_FacturasProveedorFECHAFACTURA, cMajorOrEqual, FechaIni);
AddOperator(opAND);
AddCondition(fld_FacturasProveedorFECHAFACTURA, cLessOrEqual, FechaFin);
end;
end;
end;
initialization
dmFacturasProveedor := TdmFacturasProveedor.Create(nil);
finalization
FreeAndNil(dmFacturasProveedor);
end.