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; 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; function PuedoEliminarPedido(Codigo : Integer) : Boolean; end; var dmPedidos: TdmPedidos; implementation {$R *.DFM} uses Forms, Controls, uDataTableUtils, uBizContacto, FactuGES_Intf, 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;} initialization dmPedidos := TdmPedidos.Create(nil); finalization FreeAndNil(dmPedidos); end.