2007-06-21 16:02:50 +00:00
|
|
|
|
unit uDataModulePedidosProveedor;
|
|
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
|
|
|
|
uses {vcl:} SysUtils, Classes, DB, DBClient,
|
|
|
|
|
|
{RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
|
|
|
|
|
|
uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
|
|
|
|
|
|
uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
|
|
|
|
|
|
uBizPedidosProveedor, uROTypes;
|
|
|
|
|
|
|
|
|
|
|
|
type
|
|
|
|
|
|
TdmPedidos = class(TDAClientDataModule)
|
|
|
|
|
|
RORemoteService: TRORemoteService;
|
|
|
|
|
|
DABinAdapter: TDABINAdapter;
|
|
|
|
|
|
tbl_DetallesPedidosProveedor: TDACDSDataTable;
|
|
|
|
|
|
ds_DetallesPedidosProveedor: TDADataSource;
|
|
|
|
|
|
tbl_PedidosProveedor: TDACDSDataTable;
|
|
|
|
|
|
ds_PedidosProveedor: TDADataSource;
|
2009-03-05 18:57:06 +00:00
|
|
|
|
tbl_ListaAnosPedidos: TDACDSDataTable;
|
|
|
|
|
|
ds_ListaAnosPedidos: TDADataSource;
|
2007-06-21 16:02:50 +00:00
|
|
|
|
procedure DAClientDataModuleCreate(Sender: TObject);
|
|
|
|
|
|
{ private
|
|
|
|
|
|
procedure Fax (AFile : String);}
|
|
|
|
|
|
public
|
|
|
|
|
|
procedure Print(Const Codigo: Integer);
|
|
|
|
|
|
procedure Preview(Const Codigo: Integer);
|
|
|
|
|
|
function GetNextAutoinc : integer;
|
|
|
|
|
|
function GetItems: IBizPedidosProveedor;
|
|
|
|
|
|
function GetDataTableItems(Const IDBusiness: String): TDACDSDataTable;
|
|
|
|
|
|
function GetItemsPendientesRecepcion: IBizPedidosProveedor;
|
|
|
|
|
|
function GetItem(Codigo : Integer): IBizPedidosProveedor;
|
|
|
|
|
|
function DarNuevaReferencia : String;
|
2009-03-05 18:57:06 +00:00
|
|
|
|
function PuedoEliminarPedido(Codigo : Integer) : Boolean;
|
|
|
|
|
|
|
|
|
|
|
|
function DarListaAnosPedidos: TStringList;
|
|
|
|
|
|
procedure FiltrarAno(APedidos: IBizPedidosProveedor; AWhereDataTable: String; const Ano: String);
|
2007-06-21 16:02:50 +00:00
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
var
|
|
|
|
|
|
dmPedidos: TdmPedidos;
|
|
|
|
|
|
|
|
|
|
|
|
implementation
|
|
|
|
|
|
|
|
|
|
|
|
{$R *.DFM}
|
|
|
|
|
|
|
|
|
|
|
|
uses
|
2009-03-05 18:57:06 +00:00
|
|
|
|
Forms, Controls, cxControls, uDataTableUtils, uBizContacto, FactuGES_Intf,
|
2007-06-21 16:02:50 +00:00
|
|
|
|
uDataModuleContactos, uDataModuleBase, schPedidosProveedorClient_Intf,
|
|
|
|
|
|
uDAInterfaces, uEditorPreview, Dialogs;
|
|
|
|
|
|
|
|
|
|
|
|
{ TDAClientDataModule1 }
|
|
|
|
|
|
|
|
|
|
|
|
function TdmPedidos.GetItems: IBizPedidosProveedor;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := (GetDataTableItems(BIZ_PEDIDOSPROVEEDOR) as IBizPedidosProveedor);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TdmPedidos.DAClientDataModuleCreate(Sender: TObject);
|
|
|
|
|
|
begin
|
|
|
|
|
|
RORemoteService.Channel := dmBase.Channel;
|
|
|
|
|
|
RORemoteService.Message := dmBase.Message;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function TdmPedidos.GetNextAutoinc: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := (RORemoteService as IsrvPedidosProveedor).GetNextAutoinc;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmPedidos.DarNuevaReferencia: String;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := (RORemoteService as IsrvPedidosProveedor).DarNuevaReferencia;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmPedidos.GetItem(Codigo: Integer): IBizPedidosProveedor;
|
|
|
|
|
|
var
|
|
|
|
|
|
APedido: IBizPedidosProveedor;
|
|
|
|
|
|
begin
|
|
|
|
|
|
APedido := GetItems;
|
|
|
|
|
|
with APedido.DataTable do
|
|
|
|
|
|
begin
|
|
|
|
|
|
if Active then Active := False;
|
|
|
|
|
|
Where.Clear;
|
|
|
|
|
|
Where.OpenBraket;
|
|
|
|
|
|
Where.AddText('PED.' + fld_pedidosproveedorCODIGO + ' = ' + IntToStr(Codigo), False);
|
|
|
|
|
|
Where.CloseBraket;
|
|
|
|
|
|
end;
|
|
|
|
|
|
Result := APedido;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmPedidos.GetItemsPendientesRecepcion: IBizPedidosProveedor;
|
|
|
|
|
|
var
|
|
|
|
|
|
dsPedidos : IBizPedidosProveedor;
|
|
|
|
|
|
begin
|
|
|
|
|
|
dsPedidos := GetItems;
|
|
|
|
|
|
with dsPedidos.DataTable.Where do
|
|
|
|
|
|
begin
|
|
|
|
|
|
if not Empty then
|
|
|
|
|
|
AddOperator(opAND);
|
|
|
|
|
|
Clear;
|
|
|
|
|
|
OpenBraket;
|
|
|
|
|
|
AddText('PEDIDOS.' + fld_PedidosProveedorSITUACION + '=' + '''' + SITUACION_PENDIENTE + '''', False);
|
|
|
|
|
|
CloseBraket;
|
|
|
|
|
|
AddOperator(opOR);
|
|
|
|
|
|
OpenBraket;
|
|
|
|
|
|
AddText('PEDIDOS.' + fld_PedidosProveedorSITUACION + '=' + '''' + SITUACION_PARCIAL + '''', False);
|
|
|
|
|
|
CloseBraket;
|
|
|
|
|
|
end;
|
|
|
|
|
|
Result := dsPedidos;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TdmPedidos.Preview(const Codigo: Integer);
|
|
|
|
|
|
var
|
|
|
|
|
|
AStream: TROBinaryMemoryStream;
|
|
|
|
|
|
AEditorPreview : TfEditorPreview;
|
|
|
|
|
|
begin
|
|
|
|
|
|
AEditorPreview := TfEditorPreview.Create(Application);
|
|
|
|
|
|
try
|
|
|
|
|
|
AStream := (RORemoteService as IsrvPedidosProveedor).GenerateReport(Codigo);
|
|
|
|
|
|
AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
|
|
|
|
|
|
AEditorPreview.ShowModal;
|
|
|
|
|
|
finally
|
|
|
|
|
|
AEditorPreview.Release;
|
|
|
|
|
|
AStream.Free;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TdmPedidos.Print(const Codigo: Integer);
|
|
|
|
|
|
var
|
|
|
|
|
|
AStream: TROBinaryMemoryStream;
|
|
|
|
|
|
AEditorPreview : TfEditorPreview;
|
|
|
|
|
|
AFile : String;
|
|
|
|
|
|
begin
|
|
|
|
|
|
AEditorPreview := TfEditorPreview.Create(Application);
|
|
|
|
|
|
try
|
|
|
|
|
|
AStream := (RORemoteService as IsrvPedidosProveedor).GenerateReport(Codigo);
|
|
|
|
|
|
AEditorPreview.LoadFromStream(AStream);
|
|
|
|
|
|
AFile := AEditorPreview.ExportToFile;
|
|
|
|
|
|
AEditorPreview.Print;
|
|
|
|
|
|
finally
|
|
|
|
|
|
AEditorPreview.Release;
|
|
|
|
|
|
AStream.Free;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmPedidos.PuedoEliminarPedido(Codigo: Integer): Boolean;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := (RORemoteService as IsrvPedidosProveedor).PuedoEliminarPedido(Codigo);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TdmPedidos.GetDataTableItems(Const IDBusiness: String): TDACDSDataTable;
|
|
|
|
|
|
var
|
|
|
|
|
|
dtPedidos: TDACDSDataTable;
|
|
|
|
|
|
dtDetalles: TDACDSDataTable;
|
|
|
|
|
|
ACursor: TCursor;
|
|
|
|
|
|
begin
|
|
|
|
|
|
ACursor := Screen.Cursor;
|
|
|
|
|
|
Screen.Cursor := crHourGlass;
|
|
|
|
|
|
try
|
|
|
|
|
|
dtPedidos := TDACDSDataTable.Create(NIL);
|
|
|
|
|
|
CloneDataTable(tbl_PedidosProveedor, dtPedidos);
|
|
|
|
|
|
with dtPedidos do
|
|
|
|
|
|
begin
|
|
|
|
|
|
BusinessRulesID := IDBusiness;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
dtDetalles := TDACDSDataTable.Create(NIL);
|
|
|
|
|
|
CloneDataTable(tbl_DetallesPedidosProveedor, dtDetalles);
|
|
|
|
|
|
with dtDetalles do
|
|
|
|
|
|
begin
|
|
|
|
|
|
BusinessRulesID := BIZ_DETALLESPEDIDOSPROVEEDOR;
|
|
|
|
|
|
DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
|
|
|
|
|
|
|
|
|
|
|
|
FieldByName(fld_DetallesPedidosProveedorCANTIDAD).BusinessRulesID := 'Client.Field.Cantidad';
|
|
|
|
|
|
FieldByName(fld_DetallesPedidosProveedorIMPORTEUNIDAD).BusinessRulesID := 'Client.Field.ImporteUnidad';
|
|
|
|
|
|
FieldByName(fld_DetallesPedidosProveedorTIPO).BusinessRulesID := 'Client.Field.TipoDetalle';
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
(dtPedidos as IBizPedidosProveedor).Detalles := (dtDetalles as IBizDetallesPedidoProveedor);
|
|
|
|
|
|
|
|
|
|
|
|
Result := dtPedidos;
|
|
|
|
|
|
finally
|
|
|
|
|
|
Screen.Cursor := ACursor;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
{procedure TdmPedidos.Fax (AFile : String);
|
|
|
|
|
|
var
|
|
|
|
|
|
FxDoc: TFaxDocument;
|
|
|
|
|
|
FaxServer: TFaxService;
|
|
|
|
|
|
begin
|
|
|
|
|
|
FaxServer := TFaxService.Create(Self);
|
|
|
|
|
|
FaxServer.ActiveDeviceID := 0;
|
|
|
|
|
|
FaxServer.Connect('');
|
|
|
|
|
|
try
|
|
|
|
|
|
FxDoc := FaxServer.CreateFaxDocument;
|
|
|
|
|
|
//fxDoc.DocumentName := 'aa';
|
|
|
|
|
|
fxDoc.FileName := AFile;
|
|
|
|
|
|
FxDoc.RecipientNumber := '12345678';
|
|
|
|
|
|
FxDoc.RecipientName := 'Bo Berglund';
|
|
|
|
|
|
FxDoc.Send(nil);
|
|
|
|
|
|
finally
|
|
|
|
|
|
FaxServer.Disconnect;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;}
|
|
|
|
|
|
|
2009-03-05 18:57:06 +00:00
|
|
|
|
function TdmPedidos.DarListaAnosPedidos: TStringList;
|
|
|
|
|
|
var
|
|
|
|
|
|
AListaAnos: TStringList;
|
|
|
|
|
|
begin
|
|
|
|
|
|
AListaAnos := TStringList.Create;
|
|
|
|
|
|
ShowHourglassCursor;
|
|
|
|
|
|
try
|
|
|
|
|
|
with tbl_ListaAnosPedidos 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 TdmPedidos.FiltrarAno(APedidos: IBizPedidosProveedor; AWhereDataTable: String; const Ano: String);
|
|
|
|
|
|
var
|
|
|
|
|
|
FechaIni: String;
|
|
|
|
|
|
FechaFin: String;
|
|
|
|
|
|
|
|
|
|
|
|
begin
|
|
|
|
|
|
APedidos.DataTable.Where.Clear;
|
|
|
|
|
|
APedidos.DataTable.Where.AddText(AWhereDataTable);
|
|
|
|
|
|
|
|
|
|
|
|
if (Ano <> 'Todos') then
|
|
|
|
|
|
begin
|
|
|
|
|
|
// Filtrar los pedidos actuales por a<>os
|
|
|
|
|
|
FechaIni := '01.01.' + Ano;
|
|
|
|
|
|
FechaFin := '31.12.' + Ano;
|
|
|
|
|
|
with APedidos.DataTable.Where do
|
|
|
|
|
|
begin
|
|
|
|
|
|
if NotEmpty then
|
|
|
|
|
|
AddOperator(opAND);
|
|
|
|
|
|
AddCondition(fld_PedidosProveedorFECHAPEDIDO, cMajorOrEqual, FechaIni);
|
|
|
|
|
|
AddOperator(opAND);
|
|
|
|
|
|
AddCondition(fld_PedidosProveedorFECHAPEDIDO, cLessOrEqual, FechaFin);
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2007-06-21 16:02:50 +00:00
|
|
|
|
initialization
|
|
|
|
|
|
dmPedidos := TdmPedidos.Create(nil);
|
|
|
|
|
|
|
|
|
|
|
|
finalization
|
|
|
|
|
|
FreeAndNil(dmPedidos);
|
|
|
|
|
|
|
|
|
|
|
|
end.
|