unit uEditorProveedores; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, uEditorContactos, Menus, DB, uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, uCustomView, uViewBase, uViewBarraSeleccion, ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorProveedores, uViewGridBase, uViewGrid, uViewContactos, uViewProveedores, pngimage, TBXStatusBars, JvExComCtrls, JvStatusBar, JSDialog, uDAInterfaces; type TfEditorProveedores = class(TfEditorContactos, IEditorProveedores) frViewProveedores1: TfrViewProveedores; JsPrevisualizarDialog: TJSDialog; JsImprimirDialog: TJSDialog; JsListaContactosNoEliminados: TJSDialog; actDocumentosPedidos: TAction; actDocumentosAlbaranes: TAction; actDocumentosDevoluciones: TAction; actDocumentosFacturas: TAction; actDocumentosRecibos: TAction; TBXSubmenuItem2: TTBXSubmenuItem; TBXItem38: TTBXItem; TBXItem39: TTBXItem; TBXItem40: TTBXItem; TBXItem41: TTBXItem; TBXItem42: TTBXItem; TBXSubmenuItem3: TTBXSubmenuItem; TBXItem43: TTBXItem; TBXItem44: TTBXItem; TBXItem45: TTBXItem; TBXItem46: TTBXItem; TBXItem47: TTBXItem; Documentosrelacionados1: TMenuItem; Pedidos1: TMenuItem; Albaranes1: TMenuItem; Devoluciones1: TMenuItem; Facturas1: TMenuItem; Recibos1: TMenuItem; procedure actDocumentosPedidosUpdate(Sender: TObject); procedure actDocumentosPedidosExecute(Sender: TObject); procedure actDocumentosAlbaranesExecute(Sender: TObject); procedure actDocumentosDevolucionesExecute(Sender: TObject); procedure actDocumentosFacturasExecute(Sender: TObject); procedure actDocumentosRecibosExecute(Sender: TObject); protected procedure ImprimirInterno; override; procedure PrevisualizarInterno; override; procedure EliminarInterno; override; public constructor Create(AOwner: TComponent); override; procedure PonerTitulos(const ATitulo: string = ''); override; end; implementation uses uGridStatusUtils, uEditorGridBase, uDataModuleUsuarios, uDialogUtils, uBizContactos, uDBSelectionListUtils, uProveedoresController, uFactuGES_App; {$R *.dfm} { TfEditorProveedores } procedure TfEditorProveedores.actDocumentosAlbaranesExecute(Sender: TObject); begin inherited; (FController as IProveedoresController).VerAlbaranesDeProveedor(IBizProveedor(FContactos)); end; procedure TfEditorProveedores.actDocumentosDevolucionesExecute(Sender: TObject); begin inherited; (FController as IProveedoresController).VerDevolucionesDeProveedor(IBizProveedor(FContactos)); end; procedure TfEditorProveedores.actDocumentosFacturasExecute(Sender: TObject); begin inherited; (FController as IProveedoresController).VerFacturasDeProveedor(IBizProveedor(FContactos)); end; procedure TfEditorProveedores.actDocumentosPedidosExecute(Sender: TObject); begin inherited; (FController as IProveedoresController).VerPedidosDeProveedor(IBizProveedor(FContactos)); end; procedure TfEditorProveedores.actDocumentosPedidosUpdate(Sender: TObject); begin inherited; (Sender as TAction).Enabled := HayDatos and not ViewGrid.IsEmpty and ViewGrid.EsSeleccionCeldaDatos end; procedure TfEditorProveedores.actDocumentosRecibosExecute(Sender: TObject); begin inherited; (FController as IProveedoresController).VerRecibosDeProveedor(IBizProveedor(FContactos)); end; constructor TfEditorProveedores.Create(AOwner: TComponent); begin inherited; ViewGrid := frViewProveedores1; end; procedure TfEditorProveedores.EliminarInterno; var AContactos: IBizContacto; AllItems: Boolean; begin AContactos := Nil; AllItems := False; if MultiSelect and Assigned(ViewGrid) then AllItems := (ViewGrid.NumSeleccionados > 1); if AllItems then begin if (Application.MessageBox('¿Desea borrar los proveedores seleccionados?', 'Atención', MB_YESNO) = IDYES) then begin SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Contactos as ISeleccionable).SelectedRecords); AContactos := (Controller as IProveedoresController).ExtraerSeleccionados(Contactos) as IBizContacto; end end else begin if (Application.MessageBox('¿Desea borrar el proveedor seleccionado?', 'Atención', MB_YESNO) = IDYES) then AContactos := Contactos; end; if Assigned(AContactos) then begin (FController as IProveedoresController).Eliminar(AContactos, AllItems); if AllItems then begin if (AContactos.DataTable.RecordCount > 0) then begin with AContactos.DataTable do begin First; while not EOF do begin JsListaContactosNoEliminados.Content.Add('Cliente: ' + AContactos.NOMBRE); Next; end; end; JsListaContactosNoEliminados.Execute; end; actRefrescar.Execute; end; end; ViewGrid.GotoFirst; end; procedure TfEditorProveedores.ImprimirInterno; var Respuesta : Integer; AProveedores: IBizProveedor; AllItems: Boolean; begin AProveedores := Nil; AllItems := False; if MultiSelect and Assigned(ViewGrid) then AllItems := (ViewGrid.NumSeleccionados > 1); //Si esta agrupado solo podré imprimir la lista de elementos visibles if not ViewGrid.esSeleccionCeldaDatos then inherited else begin Respuesta := JsImprimirDialog.Execute; if Respuesta <> IDCANCEL then begin case JsImprimirDialog.CustomButtonResult of 200 : begin // Lista de elementos visibles inherited; end; 100 : begin // Elemento Seleccionado if AllItems then begin SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Contactos as ISeleccionable).SelectedRecords); AProveedores := (Controller as IProveedoresController).ExtraerSeleccionados(Contactos) as IBizProveedor; end else AProveedores := (Contactos as IBizProveedor); if Assigned(AProveedores) then (FController as IProveedoresController).Print(AProveedores, AllItems); end; end; end; end; end; procedure TfEditorProveedores.PonerTitulos(const ATitulo: string); var FTitulo : String; begin FTitulo := 'Lista de proveedores - ' + AppFactuGES.EmpresaActiva.NOMBRE; inherited PonerTitulos(FTitulo); end; procedure TfEditorProveedores.PrevisualizarInterno; var Respuesta : Integer; AProveedores: IBizProveedor; AllItems: Boolean; begin AProveedores := Nil; AllItems := False; if MultiSelect and Assigned(ViewGrid) then AllItems := (ViewGrid.NumSeleccionados > 1); //Si esta agrupado solo podré imprimir la lista de elementos visibles if not ViewGrid.esSeleccionCeldaDatos then inherited else begin Respuesta := JsPrevisualizarDialog.Execute; if Respuesta <> IDCANCEL then begin case JsPrevisualizarDialog.CustomButtonResult of 200 : begin // Lista de elementos visibles inherited; end; 100 : begin // Elemento Seleccionado if AllItems then begin SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Contactos as ISeleccionable).SelectedRecords); AProveedores := (Controller as IProveedoresController).ExtraerSeleccionados(Contactos) as IBizProveedor; end else AProveedores := (Contactos as IBizProveedor); if Assigned(AProveedores) then (FController as IProveedoresController).Preview(AProveedores, AllItems); end; end; end; end; end; end.