Adaptacion para poder visualizar por años la informacion de los grid
git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@908 0c75b7a4-871f-7646-8a2f-f78d34cc349f
This commit is contained in:
parent
13283a1b0d
commit
586a59e30a
@ -59,30 +59,26 @@
|
||||
<DelphiCompile Include="GUIBase.dpk">
|
||||
<MainSource>MainSource</MainSource>
|
||||
</DelphiCompile>
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\Base.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\cxLibraryD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\cxTreeListD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\dbrtl.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\dxBarD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\dxBarExtItemsD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\dxComnD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\dxGDIPlusD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\dxLayoutControlD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\dxPSCoreD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\dxPScxCommonD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\dxPScxGrid6LnkD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\dxPsPrVwAdvD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\dxThemeD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\frx11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\frxe11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\fs11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\JvAppFrmD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\JvCtrlsD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\rtl.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\vcl.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\vcldb.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\vcljpg.dcp" />
|
||||
<DCCReference Include="..\Modulos\Recibos de cliente\vclx.dcp" />
|
||||
<DCCReference Include="Base.dcp" />
|
||||
<DCCReference Include="cxLibraryD11.dcp" />
|
||||
<DCCReference Include="cxTreeListD11.dcp" />
|
||||
<DCCReference Include="dbrtl.dcp" />
|
||||
<DCCReference Include="dxBarD11.dcp" />
|
||||
<DCCReference Include="dxBarExtItemsD11.dcp" />
|
||||
<DCCReference Include="dxComnD11.dcp" />
|
||||
<DCCReference Include="dxGDIPlusD11.dcp" />
|
||||
<DCCReference Include="dxLayoutControlD11.dcp" />
|
||||
<DCCReference Include="dxPSCoreD11.dcp" />
|
||||
<DCCReference Include="dxPScxCommonD11.dcp" />
|
||||
<DCCReference Include="dxPScxGrid6LnkD11.dcp" />
|
||||
<DCCReference Include="dxPsPrVwAdvD11.dcp" />
|
||||
<DCCReference Include="dxThemeD11.dcp" />
|
||||
<DCCReference Include="frx11.dcp" />
|
||||
<DCCReference Include="frxe11.dcp" />
|
||||
<DCCReference Include="fs11.dcp" />
|
||||
<DCCReference Include="JvAppFrmD11R.dcp" />
|
||||
<DCCReference Include="JvCtrlsD11R.dcp" />
|
||||
<DCCReference Include="rtl.dcp" />
|
||||
<DCCReference Include="uDialogBase.pas">
|
||||
<Form>fDialogBase</Form>
|
||||
</DCCReference>
|
||||
@ -180,6 +176,10 @@
|
||||
<Form>frViewTotales</Form>
|
||||
<DesignClass>TFrame</DesignClass>
|
||||
</DCCReference>
|
||||
<DCCReference Include="vcl.dcp" />
|
||||
<DCCReference Include="vcldb.dcp" />
|
||||
<DCCReference Include="vcljpg.dcp" />
|
||||
<DCCReference Include="vclx.dcp" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
<!-- EurekaLog First Line
|
||||
|
||||
Binary file not shown.
@ -3,28 +3,28 @@ inherited fEditorGridBase: TfEditorGridBase
|
||||
Top = 354
|
||||
Caption = 'fEditorGridBase'
|
||||
ClientHeight = 504
|
||||
ClientWidth = 837
|
||||
ClientWidth = 894
|
||||
OnDestroy = CustomEditorDestroy
|
||||
ExplicitWidth = 845
|
||||
ExplicitWidth = 902
|
||||
ExplicitHeight = 538
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
inherited JvNavPanelHeader: TJvNavPanelHeader
|
||||
Top = 0
|
||||
Width = 837
|
||||
Width = 894
|
||||
ExplicitTop = 0
|
||||
ExplicitWidth = 837
|
||||
ExplicitWidth = 894
|
||||
inherited Image1: TImage
|
||||
Left = 810
|
||||
Left = 867
|
||||
ExplicitLeft = 518
|
||||
end
|
||||
end
|
||||
inherited TBXDock: TTBXDock
|
||||
Top = 27
|
||||
Width = 837
|
||||
Width = 894
|
||||
Height = 75
|
||||
ExplicitTop = 27
|
||||
ExplicitWidth = 837
|
||||
ExplicitWidth = 894
|
||||
ExplicitHeight = 75
|
||||
inherited tbxMain: TTBXToolbar
|
||||
DockPos = 0
|
||||
@ -95,6 +95,16 @@ inherited fEditorGridBase: TfEditorGridBase
|
||||
ShowHint = True
|
||||
ShrinkMode = tbsmNone
|
||||
TabOrder = 0
|
||||
object lblAno: TTBXLabelItem
|
||||
Caption = 'A'#241'o'
|
||||
Visible = False
|
||||
end
|
||||
object cbxListaAnos: TTBXComboBoxItem
|
||||
Visible = False
|
||||
end
|
||||
object sepAno: TTBXSeparatorItem
|
||||
Visible = False
|
||||
end
|
||||
object TBXLabelItem1: TTBXLabelItem
|
||||
Caption = 'Filtrar:'
|
||||
end
|
||||
@ -117,7 +127,7 @@ inherited fEditorGridBase: TfEditorGridBase
|
||||
inherited tbxMenu: TTBXToolbar
|
||||
TabOrder = 2
|
||||
Visible = False
|
||||
ExplicitWidth = 837
|
||||
ExplicitWidth = 894
|
||||
inherited TBXSubmenuItem4: TTBXSubmenuItem
|
||||
inherited TBXItem30: TTBXItem
|
||||
Visible = False
|
||||
@ -164,10 +174,11 @@ inherited fEditorGridBase: TfEditorGridBase
|
||||
object TBXTMain2: TTBXToolbar
|
||||
Left = 337
|
||||
Top = 49
|
||||
Caption = 'tbxMain'
|
||||
Align = alRight
|
||||
Caption = 'tbxLista'
|
||||
ChevronHint = 'M'#225's botones|'
|
||||
DockMode = dmCannotFloatOrChangeDocks
|
||||
DockPos = 334
|
||||
DockPos = 318
|
||||
DockRow = 2
|
||||
DragHandleStyle = dhDouble
|
||||
Images = SmallImages
|
||||
@ -179,9 +190,9 @@ inherited fEditorGridBase: TfEditorGridBase
|
||||
end
|
||||
inherited StatusBar: TJvStatusBar
|
||||
Top = 485
|
||||
Width = 837
|
||||
Width = 894
|
||||
ExplicitTop = 485
|
||||
ExplicitWidth = 837
|
||||
ExplicitWidth = 894
|
||||
end
|
||||
inherited EditorActionList: TActionList
|
||||
Left = 64
|
||||
|
||||
@ -19,7 +19,9 @@ uses
|
||||
uDAScriptingProvider, uDACDSDataTable, AppEvnts, JvAppStorage,
|
||||
JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls,
|
||||
JvComponentBase, dxLayoutLookAndFeels, TBXStatusBars, JvExComCtrls,
|
||||
JvStatusBar, uDAInterfaces;
|
||||
JvStatusBar, uDAInterfaces, cxGraphics, StdCtrls, cxControls, cxContainer,
|
||||
cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit,
|
||||
cxDBLookupComboBox;
|
||||
|
||||
type
|
||||
IEditorGridBase = interface(IEditorDBBase)
|
||||
@ -67,8 +69,11 @@ type
|
||||
actContraer: TAction;
|
||||
TBXItem938: TTBXItem;
|
||||
TBXItem939: TTBXItem;
|
||||
cbxListaAnos: TTBXComboBoxItem;
|
||||
sepAno: TTBXSeparatorItem;
|
||||
lblAno: TTBXLabelItem;
|
||||
procedure tbxEditFiltroChange(Sender: TObject; const Text: String);
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure actQuitarFiltroExecute(Sender: TObject);
|
||||
procedure actDuplicarUpdate(Sender: TObject);
|
||||
procedure actModificarUpdate(Sender: TObject);
|
||||
@ -86,9 +91,19 @@ type
|
||||
procedure actExpandirUpdate(Sender: TObject);
|
||||
procedure actContraerUpdate(Sender: TObject);
|
||||
protected
|
||||
FListaAnos: TStringList;
|
||||
FViewGrid : IViewGridBase;
|
||||
FDynWhereDataTable: WideString;
|
||||
|
||||
function GetListaAnos: TStringList;
|
||||
procedure SetListaAnos(const Value: TStringList);
|
||||
|
||||
function GetDynWhereDataTable: WideString;
|
||||
procedure SetDynWhereDataTable(const Value: WideString);
|
||||
|
||||
procedure SetViewGrid(const Value : IViewGridBase); virtual;
|
||||
function GetViewGrid: IViewGridBase;
|
||||
|
||||
procedure SetMultiSelect (AValue : Boolean);
|
||||
function GetMultiSelect : Boolean;
|
||||
|
||||
@ -97,7 +112,9 @@ type
|
||||
procedure ImprimirInterno; override;
|
||||
procedure RefrescarInterno; override;
|
||||
public
|
||||
property ListaAnos: TStringList read GetListaAnos write SetListaAnos;
|
||||
property ViewGrid: IViewGridBase read GetViewGrid write SetViewGrid;
|
||||
property DynWhereDataTable: WideString read GetDynWhereDataTable write SetDynWhereDataTable;
|
||||
property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect;
|
||||
|
||||
constructor Create(AOwner : TComponent); override;
|
||||
@ -108,7 +125,7 @@ type
|
||||
implementation
|
||||
|
||||
uses
|
||||
uDMBase, uCustomEditor, cxGridTableView, cxControls;
|
||||
uDMBase, uCustomEditor, cxGridTableView;
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
@ -117,10 +134,24 @@ uses
|
||||
}
|
||||
destructor TfEditorGridBase.Destroy;
|
||||
begin
|
||||
FDynWhereDataTable := '';
|
||||
FViewGrid := NIL;
|
||||
if Assigned(FListaAnos) then
|
||||
FlistaAnos.Free;
|
||||
|
||||
inherited;
|
||||
end;
|
||||
|
||||
function TfEditorGridBase.GetDynWhereDataTable: WideString;
|
||||
begin
|
||||
Result := FDynWhereDataTable;
|
||||
end;
|
||||
|
||||
function TfEditorGridBase.GetListaAnos: TStringList;
|
||||
begin
|
||||
Result := FListaAnos;
|
||||
end;
|
||||
|
||||
function TfEditorGridBase.GetMultiSelect: Boolean;
|
||||
begin
|
||||
Result := False;
|
||||
@ -139,6 +170,47 @@ begin
|
||||
ViewGrid.Print;
|
||||
end;
|
||||
|
||||
procedure TfEditorGridBase.SetDynWhereDataTable(const Value: WideString);
|
||||
begin
|
||||
FDynWhereDataTable := Value;
|
||||
end;
|
||||
|
||||
procedure TfEditorGridBase.SetListaAnos(const Value: TStringList);
|
||||
var
|
||||
i: Integer;
|
||||
AStringAnterior: String;
|
||||
|
||||
begin
|
||||
AStringAnterior := '';
|
||||
if Assigned(FListaAnos) then
|
||||
begin
|
||||
AStringAnterior := FListaAnos.ValueFromIndex[cbxListaAnos.ItemIndex];
|
||||
FListaAnos.Free;
|
||||
end;
|
||||
|
||||
//Se asigna el nuevo TStringList
|
||||
FListaAnos := Value;
|
||||
|
||||
if Assigned(FListaAnos) then
|
||||
begin
|
||||
cbxListaAnos.Strings.BeginUpdate;
|
||||
cbxListaAnos.Strings.Clear;
|
||||
for i := 0 to FListaAnos.Count - 1 do
|
||||
cbxListaAnos.Strings.Append(FListaAnos.Names[i]);
|
||||
|
||||
//Se posiciona en el elemento que habia anteriormente
|
||||
if Length(AStringAnterior) > 0 then
|
||||
begin
|
||||
if FListaAnos.IndexOfName(AStringAnterior) <> -1 then
|
||||
cbxListaAnos.ItemIndex := FListaAnos.IndexOfName(AStringAnterior)
|
||||
else
|
||||
cbxListaAnos.ItemIndex := 0;
|
||||
end;
|
||||
|
||||
cbxListaAnos.Strings.EndUpdate;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfEditorGridBase.SetMultiSelect(AValue: Boolean);
|
||||
begin
|
||||
if Assigned(ViewGrid) then
|
||||
@ -185,6 +257,8 @@ begin
|
||||
// actExpandir.Visible := ViewGrid.AgrupacionesVisibles;
|
||||
// actContraer.Visible := ViewGrid.AgrupacionesVisibles;
|
||||
end;
|
||||
|
||||
cbxListaAnos.ItemIndex := 0;
|
||||
end;
|
||||
|
||||
procedure TfEditorGridBase.actEliminarUpdate(Sender: TObject);
|
||||
@ -298,6 +372,7 @@ end;
|
||||
constructor TfEditorGridBase.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited;
|
||||
FDynWhereDataTable := '';
|
||||
actModificar.ShortCut := ShortCut(VK_RETURN, []);
|
||||
end;
|
||||
|
||||
@ -362,6 +437,7 @@ begin
|
||||
try
|
||||
// inherited; <- No hacemos lo que hay en el padre
|
||||
dsDataTable.DataTable.Refresh;
|
||||
|
||||
finally
|
||||
ViewGrid._FocusedView.EndUpdate;
|
||||
ViewGrid._FocusedView.DataController.FocusedRowIndex := FocusedRow;
|
||||
|
||||
@ -14,8 +14,15 @@
|
||||
<Projects Include="..\Articulos\Views\Articulos_view.dproj" />
|
||||
<Projects Include="..\Contactos\Controller\Contactos_controller.dproj" />
|
||||
<Projects Include="..\Contactos\Views\Contactos_view.dproj" />
|
||||
<Projects Include="..\Facturas de proveedor\Views\FacturasProveedor_view.dproj" />
|
||||
<Projects Include="..\Pedidos a proveedor\Views\PedidosProveedor_view.dproj" />
|
||||
<Projects Include="..\Presupuestos de cliente\Views\PresupuestosCliente_view.dproj" />
|
||||
<Projects Include="..\Recibos de cliente\Views\RecibosCliente_view.dproj" />
|
||||
<Projects Include="..\Recibos de proveedor\Views\RecibosProveedor_view.dproj" />
|
||||
<Projects Include="..\Relaciones\Albaranes de cliente - Facturas de cliente\AlbCli_FacCli_relation.dproj" />
|
||||
<Projects Include="..\Relaciones\Albaranes de proveedor - Facturas de proveedor\AlbProv_FacProv_relation.dproj" />
|
||||
<Projects Include="..\Remesas de cliente\Views\RemesasCliente_view.dproj" />
|
||||
<Projects Include="..\Remesas de proveedor\Views\RemesasProveedor_view.dproj" />
|
||||
<Projects Include="Controller\AlbaranesCliente_controller.dproj" />
|
||||
<Projects Include="Data\AlbaranesCliente_data.dproj" />
|
||||
<Projects Include="Model\AlbaranesCliente_model.dproj" />
|
||||
@ -181,14 +188,77 @@
|
||||
<Target Name="Contactos_controller:Make">
|
||||
<MSBuild Projects="..\Contactos\Controller\Contactos_controller.dproj" Targets="Make" />
|
||||
</Target>
|
||||
<Target Name="FacturasProveedor_view">
|
||||
<MSBuild Projects="..\Facturas de proveedor\Views\FacturasProveedor_view.dproj" Targets="" />
|
||||
</Target>
|
||||
<Target Name="FacturasProveedor_view:Clean">
|
||||
<MSBuild Projects="..\Facturas de proveedor\Views\FacturasProveedor_view.dproj" Targets="Clean" />
|
||||
</Target>
|
||||
<Target Name="FacturasProveedor_view:Make">
|
||||
<MSBuild Projects="..\Facturas de proveedor\Views\FacturasProveedor_view.dproj" Targets="Make" />
|
||||
</Target>
|
||||
<Target Name="PedidosProveedor_view">
|
||||
<MSBuild Projects="..\Pedidos a proveedor\Views\PedidosProveedor_view.dproj" Targets="" />
|
||||
</Target>
|
||||
<Target Name="PedidosProveedor_view:Clean">
|
||||
<MSBuild Projects="..\Pedidos a proveedor\Views\PedidosProveedor_view.dproj" Targets="Clean" />
|
||||
</Target>
|
||||
<Target Name="PedidosProveedor_view:Make">
|
||||
<MSBuild Projects="..\Pedidos a proveedor\Views\PedidosProveedor_view.dproj" Targets="Make" />
|
||||
</Target>
|
||||
<Target Name="PresupuestosCliente_view">
|
||||
<MSBuild Projects="..\Presupuestos de cliente\Views\PresupuestosCliente_view.dproj" Targets="" />
|
||||
</Target>
|
||||
<Target Name="PresupuestosCliente_view:Clean">
|
||||
<MSBuild Projects="..\Presupuestos de cliente\Views\PresupuestosCliente_view.dproj" Targets="Clean" />
|
||||
</Target>
|
||||
<Target Name="PresupuestosCliente_view:Make">
|
||||
<MSBuild Projects="..\Presupuestos de cliente\Views\PresupuestosCliente_view.dproj" Targets="Make" />
|
||||
</Target>
|
||||
<Target Name="RecibosCliente_view">
|
||||
<MSBuild Projects="..\Recibos de cliente\Views\RecibosCliente_view.dproj" Targets="" />
|
||||
</Target>
|
||||
<Target Name="RecibosCliente_view:Clean">
|
||||
<MSBuild Projects="..\Recibos de cliente\Views\RecibosCliente_view.dproj" Targets="Clean" />
|
||||
</Target>
|
||||
<Target Name="RecibosCliente_view:Make">
|
||||
<MSBuild Projects="..\Recibos de cliente\Views\RecibosCliente_view.dproj" Targets="Make" />
|
||||
</Target>
|
||||
<Target Name="RecibosProveedor_view">
|
||||
<MSBuild Projects="..\Recibos de proveedor\Views\RecibosProveedor_view.dproj" Targets="" />
|
||||
</Target>
|
||||
<Target Name="RecibosProveedor_view:Clean">
|
||||
<MSBuild Projects="..\Recibos de proveedor\Views\RecibosProveedor_view.dproj" Targets="Clean" />
|
||||
</Target>
|
||||
<Target Name="RecibosProveedor_view:Make">
|
||||
<MSBuild Projects="..\Recibos de proveedor\Views\RecibosProveedor_view.dproj" Targets="Make" />
|
||||
</Target>
|
||||
<Target Name="RemesasCliente_view">
|
||||
<MSBuild Projects="..\Remesas de cliente\Views\RemesasCliente_view.dproj" Targets="" />
|
||||
</Target>
|
||||
<Target Name="RemesasCliente_view:Clean">
|
||||
<MSBuild Projects="..\Remesas de cliente\Views\RemesasCliente_view.dproj" Targets="Clean" />
|
||||
</Target>
|
||||
<Target Name="RemesasCliente_view:Make">
|
||||
<MSBuild Projects="..\Remesas de cliente\Views\RemesasCliente_view.dproj" Targets="Make" />
|
||||
</Target>
|
||||
<Target Name="RemesasProveedor_view">
|
||||
<MSBuild Projects="..\Remesas de proveedor\Views\RemesasProveedor_view.dproj" Targets="" />
|
||||
</Target>
|
||||
<Target Name="RemesasProveedor_view:Clean">
|
||||
<MSBuild Projects="..\Remesas de proveedor\Views\RemesasProveedor_view.dproj" Targets="Clean" />
|
||||
</Target>
|
||||
<Target Name="RemesasProveedor_view:Make">
|
||||
<MSBuild Projects="..\Remesas de proveedor\Views\RemesasProveedor_view.dproj" Targets="Make" />
|
||||
</Target>
|
||||
<Target Name="Build">
|
||||
<CallTarget Targets="Base;GUIBase;ApplicationBase;Contactos_view;Articulos_controller;Articulos_view;AlbaranesCliente_model;AlbaranesCliente_data;AlbaranesCliente_controller;AlbCli_FacCli_relation;AlbaranesCliente_view;AlbaranesCliente_plugin;FactuGES;FactuGES_Server;AlbaranesProveedor_view;AlbProv_FacProv_relation;Contactos_controller" />
|
||||
<CallTarget Targets="Base;GUIBase;ApplicationBase;Contactos_view;Articulos_controller;Articulos_view;AlbaranesCliente_model;AlbaranesCliente_data;AlbaranesCliente_controller;AlbCli_FacCli_relation;AlbaranesCliente_view;AlbaranesCliente_plugin;FactuGES;FactuGES_Server;AlbaranesProveedor_view;AlbProv_FacProv_relation;Contactos_controller;FacturasProveedor_view;PedidosProveedor_view;PresupuestosCliente_view;RecibosCliente_view;RecibosProveedor_view;RemesasCliente_view;RemesasProveedor_view" />
|
||||
</Target>
|
||||
<Target Name="Clean">
|
||||
<CallTarget Targets="Base:Clean;GUIBase:Clean;ApplicationBase:Clean;Contactos_view:Clean;Articulos_controller:Clean;Articulos_view:Clean;AlbaranesCliente_model:Clean;AlbaranesCliente_data:Clean;AlbaranesCliente_controller:Clean;AlbCli_FacCli_relation:Clean;AlbaranesCliente_view:Clean;AlbaranesCliente_plugin:Clean;FactuGES:Clean;FactuGES_Server:Clean;AlbaranesProveedor_view:Clean;AlbProv_FacProv_relation:Clean;Contactos_controller:Clean" />
|
||||
<CallTarget Targets="Base:Clean;GUIBase:Clean;ApplicationBase:Clean;Contactos_view:Clean;Articulos_controller:Clean;Articulos_view:Clean;AlbaranesCliente_model:Clean;AlbaranesCliente_data:Clean;AlbaranesCliente_controller:Clean;AlbCli_FacCli_relation:Clean;AlbaranesCliente_view:Clean;AlbaranesCliente_plugin:Clean;FactuGES:Clean;FactuGES_Server:Clean;AlbaranesProveedor_view:Clean;AlbProv_FacProv_relation:Clean;Contactos_controller:Clean;FacturasProveedor_view:Clean;PedidosProveedor_view:Clean;PresupuestosCliente_view:Clean;RecibosCliente_view:Clean;RecibosProveedor_view:Clean;RemesasCliente_view:Clean;RemesasProveedor_view:Clean" />
|
||||
</Target>
|
||||
<Target Name="Make">
|
||||
<CallTarget Targets="Base:Make;GUIBase:Make;ApplicationBase:Make;Contactos_view:Make;Articulos_controller:Make;Articulos_view:Make;AlbaranesCliente_model:Make;AlbaranesCliente_data:Make;AlbaranesCliente_controller:Make;AlbCli_FacCli_relation:Make;AlbaranesCliente_view:Make;AlbaranesCliente_plugin:Make;FactuGES:Make;FactuGES_Server:Make;AlbaranesProveedor_view:Make;AlbProv_FacProv_relation:Make;Contactos_controller:Make" />
|
||||
<CallTarget Targets="Base:Make;GUIBase:Make;ApplicationBase:Make;Contactos_view:Make;Articulos_controller:Make;Articulos_view:Make;AlbaranesCliente_model:Make;AlbaranesCliente_data:Make;AlbaranesCliente_controller:Make;AlbCli_FacCli_relation:Make;AlbaranesCliente_view:Make;AlbaranesCliente_plugin:Make;FactuGES:Make;FactuGES_Server:Make;AlbaranesProveedor_view:Make;AlbProv_FacProv_relation:Make;Contactos_controller:Make;FacturasProveedor_view:Make;PedidosProveedor_view:Make;PresupuestosCliente_view:Make;RecibosCliente_view:Make;RecibosProveedor_view:Make;RemesasCliente_view:Make;RemesasProveedor_view:Make" />
|
||||
</Target>
|
||||
<Import Condition="Exists('$(MSBuildBinPath)\Borland.Group.Targets')" Project="$(MSBuildBinPath)\Borland.Group.Targets" />
|
||||
</Project>
|
||||
@ -4,7 +4,7 @@ interface
|
||||
|
||||
|
||||
uses
|
||||
SysUtils, uDADataTable, uEditorDBItem,
|
||||
Classes, SysUtils, uDADataTable, uEditorDBItem,
|
||||
uControllerBase, uIDataModuleAlbaranesCliente, uClientesController,
|
||||
uDetallesAlbaranClienteController, uBizAlbaranesCliente, uBizDireccionesContacto;
|
||||
|
||||
@ -65,6 +65,9 @@ type
|
||||
ANuevaSituacion: String; AFechaEnvio : TDateTime = 0;
|
||||
AFechaRecibido : TDateTime = 0;
|
||||
DoPost: Boolean = True) : Boolean;
|
||||
|
||||
function DarListaAnosAlbaranes: TStringList;
|
||||
procedure FiltrarAno(AAlbaran: IBizAlbaranCliente; ADynWhereDataTable: WideString; const Ano: String);
|
||||
end;
|
||||
|
||||
TAlbaranesClienteController = class(TControllerBase, IAlbaranesClienteController)
|
||||
@ -138,7 +141,7 @@ type
|
||||
function EsModificable(AAlbaran: IBizAlbaranCliente): Boolean;
|
||||
function EsEliminable(AAlbaran: IBizAlbaranCliente): Boolean;
|
||||
|
||||
procedure EnviarAlbaranPorEMail(AAlbaran : IBizAlbaranCliente);
|
||||
procedure EnviarAlbaranPorEMail(AAlbaran : IBizAlbaranCliente);
|
||||
function CambiarSituacion(AAlbaran : IBizAlbaranCliente;
|
||||
ANuevaSituacion: String; AFechaEnvio : TDateTime = 0;
|
||||
AFechaRecibido : TDateTime = 0;
|
||||
@ -148,6 +151,9 @@ type
|
||||
procedure Print(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false);
|
||||
procedure EtiquetasPreview(AAlbaran : IBizAlbaranCliente; Const withRefCliente: Boolean);
|
||||
procedure EtiquetasPrint(AAlbaran : IBizAlbaranCliente; Const withRefCliente: Boolean);
|
||||
|
||||
function DarListaAnosAlbaranes: TStringList;
|
||||
procedure FiltrarAno(AAlbaran: IBizAlbaranCliente; ADynWhereDataTable: WideString; const Ano: String);
|
||||
end;
|
||||
|
||||
implementation
|
||||
@ -156,7 +162,7 @@ uses
|
||||
uROTypes, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils,
|
||||
uIEditorAlbaranesCliente, uIEditorAlbaranesDevCliente, uIEditorAlbaranDevCliente,
|
||||
uDataModuleAlbaranesCliente, Variants, uBizDetallesAlbaranCliente,
|
||||
uBizContactos, uDataTableUtils, uDataModuleUsuarios, Classes, uFactuGES_App,
|
||||
uBizContactos, uDataTableUtils, uDataModuleUsuarios, uFactuGES_App,
|
||||
schAlbaranesClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorAlbaranCliente,
|
||||
uIEditorElegirAlbaranesCliente, uIEditorDireccionEntregaAlbaranCliente,
|
||||
schContactosClient_Intf, uAlbaranesClienteReportController, uControllerDetallesBase,
|
||||
@ -414,6 +420,11 @@ begin
|
||||
Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf);
|
||||
end;
|
||||
|
||||
function TAlbaranesClienteController.DarListaAnosAlbaranes: TStringList;
|
||||
begin
|
||||
Result := FDataModule.GetAnosItems;
|
||||
end;
|
||||
|
||||
procedure TAlbaranesClienteController.DescartarCambios(AAlbaran: IBizAlbaranCliente);
|
||||
begin
|
||||
if not Assigned(AAlbaran) then
|
||||
@ -912,6 +923,35 @@ begin
|
||||
Result := ASeleccionados;
|
||||
end;
|
||||
|
||||
procedure TAlbaranesClienteController.FiltrarAno(AAlbaran: IBizAlbaranCliente; ADynWhereDataTable: WideString; const Ano: String);
|
||||
var
|
||||
Condicion: TDAWhereExpression;
|
||||
FechaIni: String;
|
||||
FechaFin: String;
|
||||
|
||||
begin
|
||||
AAlbaran.DataTable.DynamicWhere.Clear;
|
||||
AAlbaran.DataTable.DynamicWhere.Xml := ADynWhereDataTable;
|
||||
|
||||
if (Ano <> 'Todos') then
|
||||
begin
|
||||
// Filtrar las facturas actuales por empresa
|
||||
FechaIni := '01/01/' + Ano;
|
||||
FechaFin := '31/12/' + Ano;
|
||||
with AAlbaran.DataTable.DynamicWhere do
|
||||
begin
|
||||
// (FECHA_INICIO between FECHA_FIN)
|
||||
Condicion := NewBinaryExpression(NewField('', fld_AlbaranesClienteFECHA_ALBARAN), NewConstant(FechaIni, datString), dboGreaterOrEqual);
|
||||
Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_AlbaranesClienteFECHA_ALBARAN), NewConstant(FechaFin, datString), dboLessOrEqual), Condicion, dboAnd);
|
||||
|
||||
if IsEmpty then
|
||||
Expression := Condicion
|
||||
else
|
||||
Expression := NewBinaryExpression(Condicion, Expression, dboAnd);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TAlbaranesClienteController.FiltrarEmpresa(AAlbaran: IBizAlbaranCliente);
|
||||
var
|
||||
Condicion: TDAWhereExpression;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
inherited DataModuleAlbaranesCliente: TDataModuleAlbaranesCliente
|
||||
OnCreate = DAClientDataModuleCreate
|
||||
Height = 234
|
||||
Width = 484
|
||||
Height = 394
|
||||
Width = 512
|
||||
object RORemoteService: TRORemoteService
|
||||
Message = dmConexion.ROMessage
|
||||
Channel = dmConexion.ROChannel
|
||||
@ -421,4 +421,28 @@ inherited DataModuleAlbaranesCliente: TDataModuleAlbaranesCliente
|
||||
Left = 384
|
||||
Top = 56
|
||||
end
|
||||
object tbl_ListaAnosAlbaranes: TDAMemDataTable
|
||||
RemoteUpdatesOptions = []
|
||||
Fields = <
|
||||
item
|
||||
Name = 'ANO'
|
||||
DataType = datString
|
||||
Size = 254
|
||||
end>
|
||||
Params = <>
|
||||
StreamingOptions = [soDisableEventsWhileStreaming]
|
||||
RemoteDataAdapter = rda_AlbaranesCliente
|
||||
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
|
||||
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
|
||||
LogicalName = 'ListaAnosAlbaranes'
|
||||
IndexDefs = <>
|
||||
Left = 232
|
||||
Top = 248
|
||||
end
|
||||
object ds_ListaAnosAlbaranes: TDADataSource
|
||||
DataSet = tbl_ListaAnosAlbaranes.Dataset
|
||||
DataTable = tbl_ListaAnosAlbaranes
|
||||
Left = 232
|
||||
Top = 192
|
||||
end
|
||||
end
|
||||
|
||||
@ -20,6 +20,8 @@ type
|
||||
ds_AlbaranesCliente: TDADataSource;
|
||||
tbl_AlbaranesCliente_Detalles: TDAMemDataTable;
|
||||
ds_AlbaranesCliente_Detalles: TDADataSource;
|
||||
tbl_ListaAnosAlbaranes: TDAMemDataTable;
|
||||
ds_ListaAnosAlbaranes: TDADataSource;
|
||||
procedure DAClientDataModuleCreate(Sender: TObject);
|
||||
|
||||
private
|
||||
@ -38,6 +40,8 @@ type
|
||||
function GetRptWordAlbaran(const AID: Integer): Binary;
|
||||
function GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary;
|
||||
function GetRptPDFAlbaran(const AID: Integer): Binary;
|
||||
|
||||
function GetAnosItems : TStringList;
|
||||
end;
|
||||
|
||||
implementation
|
||||
@ -116,6 +120,30 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function TDataModuleAlbaranesCliente.GetAnosItems: TStringList;
|
||||
var
|
||||
AListaAnos: TStringList;
|
||||
begin
|
||||
AListaAnos := TStringList.Create;
|
||||
ShowHourglassCursor;
|
||||
try
|
||||
with tbl_ListaAnosAlbaranes 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;
|
||||
|
||||
function TDataModuleAlbaranesCliente.GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary;
|
||||
begin
|
||||
Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInformeEtiquetas(AID, withRefCliente)
|
||||
|
||||
@ -3,11 +3,12 @@ unit uIDataModuleAlbaranesCliente;
|
||||
interface
|
||||
|
||||
uses
|
||||
uBizAlbaranesCliente;
|
||||
Classes, uBizAlbaranesCliente;
|
||||
|
||||
type
|
||||
IDataModuleAlbaranesCliente = interface
|
||||
['{81932348-9595-45AC-AFC9-5A8983B4A3A8}']
|
||||
function GetAnosItems : TStringList;
|
||||
function GetItems: IBizAlbaranCliente;
|
||||
function GetItem(const ID : Integer) : IBizAlbaranCliente;
|
||||
function NewItem : IBizAlbaranCliente;
|
||||
|
||||
@ -9,13 +9,21 @@ const
|
||||
{ Data table rules ids
|
||||
Feel free to change them to something more human readable
|
||||
but make sure they are unique in the context of your application }
|
||||
RID_AlbaranesCliente = '{53F308FB-F81B-4A25-99E0-E11DF3E18565}';
|
||||
RID_AlbaranesCliente_Detalles = '{D025104D-248E-4C16-BB61-752769362E0D}';
|
||||
RID_ListaAnosAlbaranes = '{4E395FAD-6E22-4BEA-8928-852C19481C40}';
|
||||
RID_AlbaranesCliente = '{4B881ADC-1915-43AB-AF50-8E576C19A0A0}';
|
||||
RID_AlbaranesCliente_Detalles = '{FF516CED-DDC4-4D70-AC0F-E579F1103F15}';
|
||||
|
||||
{ Data table names }
|
||||
nme_ListaAnosAlbaranes = 'ListaAnosAlbaranes';
|
||||
nme_AlbaranesCliente = 'AlbaranesCliente';
|
||||
nme_AlbaranesCliente_Detalles = 'AlbaranesCliente_Detalles';
|
||||
|
||||
{ ListaAnosAlbaranes fields }
|
||||
fld_ListaAnosAlbaranesANO = 'ANO';
|
||||
|
||||
{ ListaAnosAlbaranes field indexes }
|
||||
idx_ListaAnosAlbaranesANO = 0;
|
||||
|
||||
{ AlbaranesCliente fields }
|
||||
fld_AlbaranesClienteID = 'ID';
|
||||
fld_AlbaranesClienteID_EMPRESA = 'ID_EMPRESA';
|
||||
@ -137,9 +145,44 @@ const
|
||||
idx_AlbaranesCliente_DetallesID_PEDIDO = 15;
|
||||
|
||||
type
|
||||
{ IListaAnosAlbaranes }
|
||||
IListaAnosAlbaranes = interface(IDAStronglyTypedDataTable)
|
||||
['{A625E55F-A727-4F88-9DAA-605DD60159D7}']
|
||||
{ Property getters and setters }
|
||||
function GetANOValue: String;
|
||||
procedure SetANOValue(const aValue: String);
|
||||
function GetANOIsNull: Boolean;
|
||||
procedure SetANOIsNull(const aValue: Boolean);
|
||||
|
||||
|
||||
{ Properties }
|
||||
property ANO: String read GetANOValue write SetANOValue;
|
||||
property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull;
|
||||
end;
|
||||
|
||||
{ TListaAnosAlbaranesDataTableRules }
|
||||
TListaAnosAlbaranesDataTableRules = class(TIntfObjectDADataTableRules, IListaAnosAlbaranes)
|
||||
private
|
||||
protected
|
||||
{ Property getters and setters }
|
||||
function GetANOValue: String; virtual;
|
||||
procedure SetANOValue(const aValue: String); virtual;
|
||||
function GetANOIsNull: Boolean; virtual;
|
||||
procedure SetANOIsNull(const aValue: Boolean); virtual;
|
||||
|
||||
{ Properties }
|
||||
property ANO: String read GetANOValue write SetANOValue;
|
||||
property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull;
|
||||
|
||||
public
|
||||
constructor Create(aDataTable: TDADataTable); override;
|
||||
destructor Destroy; override;
|
||||
|
||||
end;
|
||||
|
||||
{ IAlbaranesCliente }
|
||||
IAlbaranesCliente = interface(IDAStronglyTypedDataTable)
|
||||
['{9088D93F-C3A6-4EB9-83CC-7C8C04F9ABDD}']
|
||||
['{B3652632-A310-4050-B523-49C26C41F857}']
|
||||
{ Property getters and setters }
|
||||
function GetIDValue: Integer;
|
||||
procedure SetIDValue(const aValue: Integer);
|
||||
@ -642,7 +685,7 @@ type
|
||||
|
||||
{ IAlbaranesCliente_Detalles }
|
||||
IAlbaranesCliente_Detalles = interface(IDAStronglyTypedDataTable)
|
||||
['{7931FCBB-7F4B-414C-AAEB-6FB3F0A8C3D4}']
|
||||
['{AF2BB21F-76D4-42AD-9190-C2CC3934F6B9}']
|
||||
{ Property getters and setters }
|
||||
function GetIDValue: Integer;
|
||||
procedure SetIDValue(const aValue: Integer);
|
||||
@ -859,6 +902,39 @@ implementation
|
||||
|
||||
uses Variants, uROBinaryHelpers;
|
||||
|
||||
{ TListaAnosAlbaranesDataTableRules }
|
||||
constructor TListaAnosAlbaranesDataTableRules.Create(aDataTable: TDADataTable);
|
||||
begin
|
||||
inherited;
|
||||
end;
|
||||
|
||||
destructor TListaAnosAlbaranesDataTableRules.Destroy;
|
||||
begin
|
||||
inherited;
|
||||
end;
|
||||
|
||||
function TListaAnosAlbaranesDataTableRules.GetANOValue: String;
|
||||
begin
|
||||
result := DataTable.Fields[idx_ListaAnosAlbaranesANO].AsString;
|
||||
end;
|
||||
|
||||
procedure TListaAnosAlbaranesDataTableRules.SetANOValue(const aValue: String);
|
||||
begin
|
||||
DataTable.Fields[idx_ListaAnosAlbaranesANO].AsString := aValue;
|
||||
end;
|
||||
|
||||
function TListaAnosAlbaranesDataTableRules.GetANOIsNull: boolean;
|
||||
begin
|
||||
result := DataTable.Fields[idx_ListaAnosAlbaranesANO].IsNull;
|
||||
end;
|
||||
|
||||
procedure TListaAnosAlbaranesDataTableRules.SetANOIsNull(const aValue: Boolean);
|
||||
begin
|
||||
if aValue then
|
||||
DataTable.Fields[idx_ListaAnosAlbaranesANO].AsVariant := Null;
|
||||
end;
|
||||
|
||||
|
||||
{ TAlbaranesClienteDataTableRules }
|
||||
constructor TAlbaranesClienteDataTableRules.Create(aDataTable: TDADataTable);
|
||||
var
|
||||
@ -2072,6 +2148,7 @@ end;
|
||||
|
||||
|
||||
initialization
|
||||
RegisterDataTableRules(RID_ListaAnosAlbaranes, TListaAnosAlbaranesDataTableRules);
|
||||
RegisterDataTableRules(RID_AlbaranesCliente, TAlbaranesClienteDataTableRules);
|
||||
RegisterDataTableRules(RID_AlbaranesCliente_Detalles, TAlbaranesCliente_DetallesDataTableRules);
|
||||
|
||||
|
||||
@ -9,13 +9,48 @@ const
|
||||
{ Delta rules ids
|
||||
Feel free to change them to something more human readable
|
||||
but make sure they are unique in the context of your application }
|
||||
RID_AlbaranesClienteDelta = '{9B8F3A42-777B-408C-8600-F52474CB6A01}';
|
||||
RID_AlbaranesCliente_DetallesDelta = '{EC9C74AF-D537-46A1-9FD4-3418C781C464}';
|
||||
RID_ListaAnosAlbaranesDelta = '{31517BB5-3488-4555-8B2D-2744016505EE}';
|
||||
RID_AlbaranesClienteDelta = '{1A863DB4-0BF6-4F65-AFA1-52EA357D6529}';
|
||||
RID_AlbaranesCliente_DetallesDelta = '{ED26F299-FA26-46E6-9A24-057570AB5D28}';
|
||||
|
||||
type
|
||||
{ IListaAnosAlbaranesDelta }
|
||||
IListaAnosAlbaranesDelta = interface(IListaAnosAlbaranes)
|
||||
['{31517BB5-3488-4555-8B2D-2744016505EE}']
|
||||
{ Property getters and setters }
|
||||
function GetOldANOValue : String;
|
||||
|
||||
{ Properties }
|
||||
property OldANO : String read GetOldANOValue;
|
||||
end;
|
||||
|
||||
{ TListaAnosAlbaranesBusinessProcessorRules }
|
||||
TListaAnosAlbaranesBusinessProcessorRules = class(TDABusinessProcessorRules, IListaAnosAlbaranes, IListaAnosAlbaranesDelta)
|
||||
private
|
||||
protected
|
||||
{ Property getters and setters }
|
||||
function GetANOValue: String; virtual;
|
||||
function GetANOIsNull: Boolean; virtual;
|
||||
function GetOldANOValue: String; virtual;
|
||||
function GetOldANOIsNull: Boolean; virtual;
|
||||
procedure SetANOValue(const aValue: String); virtual;
|
||||
procedure SetANOIsNull(const aValue: Boolean); virtual;
|
||||
|
||||
{ Properties }
|
||||
property ANO : String read GetANOValue write SetANOValue;
|
||||
property ANOIsNull : Boolean read GetANOIsNull write SetANOIsNull;
|
||||
property OldANO : String read GetOldANOValue;
|
||||
property OldANOIsNull : Boolean read GetOldANOIsNull;
|
||||
|
||||
public
|
||||
constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
|
||||
destructor Destroy; override;
|
||||
|
||||
end;
|
||||
|
||||
{ IAlbaranesClienteDelta }
|
||||
IAlbaranesClienteDelta = interface(IAlbaranesCliente)
|
||||
['{9B8F3A42-777B-408C-8600-F52474CB6A01}']
|
||||
['{1A863DB4-0BF6-4F65-AFA1-52EA357D6529}']
|
||||
{ Property getters and setters }
|
||||
function GetOldIDValue : Integer;
|
||||
function GetOldID_EMPRESAValue : Integer;
|
||||
@ -519,7 +554,7 @@ type
|
||||
|
||||
{ IAlbaranesCliente_DetallesDelta }
|
||||
IAlbaranesCliente_DetallesDelta = interface(IAlbaranesCliente_Detalles)
|
||||
['{EC9C74AF-D537-46A1-9FD4-3418C781C464}']
|
||||
['{ED26F299-FA26-46E6-9A24-057570AB5D28}']
|
||||
{ Property getters and setters }
|
||||
function GetOldIDValue : Integer;
|
||||
function GetOldID_ALBARANValue : Integer;
|
||||
@ -736,6 +771,49 @@ implementation
|
||||
uses
|
||||
Variants, uROBinaryHelpers, uDAInterfaces;
|
||||
|
||||
{ TListaAnosAlbaranesBusinessProcessorRules }
|
||||
constructor TListaAnosAlbaranesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
|
||||
begin
|
||||
inherited;
|
||||
end;
|
||||
|
||||
destructor TListaAnosAlbaranesBusinessProcessorRules.Destroy;
|
||||
begin
|
||||
inherited;
|
||||
end;
|
||||
|
||||
function TListaAnosAlbaranesBusinessProcessorRules.GetANOValue: String;
|
||||
begin
|
||||
result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO];
|
||||
end;
|
||||
|
||||
function TListaAnosAlbaranesBusinessProcessorRules.GetANOIsNull: Boolean;
|
||||
begin
|
||||
result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO]);
|
||||
end;
|
||||
|
||||
function TListaAnosAlbaranesBusinessProcessorRules.GetOldANOValue: String;
|
||||
begin
|
||||
result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosAlbaranesANO];
|
||||
end;
|
||||
|
||||
function TListaAnosAlbaranesBusinessProcessorRules.GetOldANOIsNull: Boolean;
|
||||
begin
|
||||
result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosAlbaranesANO]);
|
||||
end;
|
||||
|
||||
procedure TListaAnosAlbaranesBusinessProcessorRules.SetANOValue(const aValue: String);
|
||||
begin
|
||||
BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO] := aValue;
|
||||
end;
|
||||
|
||||
procedure TListaAnosAlbaranesBusinessProcessorRules.SetANOIsNull(const aValue: Boolean);
|
||||
begin
|
||||
if aValue then
|
||||
BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO] := Null;
|
||||
end;
|
||||
|
||||
|
||||
{ TAlbaranesClienteBusinessProcessorRules }
|
||||
constructor TAlbaranesClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
|
||||
var
|
||||
@ -2511,6 +2589,7 @@ end;
|
||||
|
||||
|
||||
initialization
|
||||
RegisterBusinessProcessorRules(RID_ListaAnosAlbaranesDelta, TListaAnosAlbaranesBusinessProcessorRules);
|
||||
RegisterBusinessProcessorRules(RID_AlbaranesClienteDelta, TAlbaranesClienteBusinessProcessorRules);
|
||||
RegisterBusinessProcessorRules(RID_AlbaranesCliente_DetallesDelta, TAlbaranesCliente_DetallesBusinessProcessorRules);
|
||||
|
||||
|
||||
@ -13,6 +13,33 @@ object srvAlbaranesCliente: TsrvAlbaranesCliente
|
||||
ConnectionManager = dmServer.ConnectionManager
|
||||
DataDictionary = DADataDictionary
|
||||
Datasets = <
|
||||
item
|
||||
Params = <>
|
||||
Statements = <
|
||||
item
|
||||
Connection = 'IBX'
|
||||
ConnectionType = 'Interbase'
|
||||
Default = True
|
||||
Name = 'IBX'
|
||||
SQL =
|
||||
'select ANO from'#10'(select distinct(substr(FECHA_ALBARAN, 1,4)) as ' +
|
||||
'ANO'#10'from albaranes_cliente'#10'order by 1 desc)'#10#10'UNION ALL'#10#10'select d' +
|
||||
'istinct '#39'Todos'#39' as ANO'#10'from empresas'#10
|
||||
StatementType = stSQL
|
||||
ColumnMappings = <
|
||||
item
|
||||
DatasetField = 'ANO'
|
||||
TableField = 'ANO'
|
||||
end>
|
||||
end>
|
||||
Name = 'ListaAnosAlbaranes'
|
||||
Fields = <
|
||||
item
|
||||
Name = 'ANO'
|
||||
DataType = datString
|
||||
Size = 254
|
||||
end>
|
||||
end
|
||||
item
|
||||
Params = <>
|
||||
Statements = <
|
||||
|
||||
@ -128,6 +128,18 @@ inherited fEditorAlbaranesCliente: TfEditorAlbaranesCliente
|
||||
object TBXSeparatorItem17: TTBXSeparatorItem [10]
|
||||
end
|
||||
end
|
||||
inherited tbxFiltro: TTBXToolbar
|
||||
ExplicitWidth = 427
|
||||
inherited lblAno: TTBXLabelItem
|
||||
Visible = True
|
||||
end
|
||||
inherited cbxListaAnos: TTBXComboBoxItem
|
||||
Visible = True
|
||||
end
|
||||
inherited sepAno: TTBXSeparatorItem
|
||||
Visible = True
|
||||
end
|
||||
end
|
||||
inherited tbxMenu: TTBXToolbar
|
||||
ExplicitWidth = 583
|
||||
object TBXSubmenuItem2: TTBXSubmenuItem [4]
|
||||
@ -138,7 +150,9 @@ inherited fEditorAlbaranesCliente: TfEditorAlbaranesCliente
|
||||
end
|
||||
end
|
||||
inherited TBXTMain2: TTBXToolbar
|
||||
Left = 427
|
||||
Visible = True
|
||||
ExplicitLeft = 427
|
||||
ExplicitWidth = 117
|
||||
object TBXItem42: TTBXItem
|
||||
Action = actEnviar
|
||||
|
||||
@ -54,6 +54,7 @@ type
|
||||
procedure actGenerarEtiquetasUpdate(Sender: TObject);
|
||||
procedure actEnviarEMailExecute(Sender: TObject);
|
||||
procedure actEnviarEMailUpdate(Sender: TObject);
|
||||
procedure OnListaAnosChange(Sender: TObject; const Text: string);
|
||||
|
||||
protected
|
||||
FAlbaranes: IBizAlbaranCliente;
|
||||
@ -71,6 +72,7 @@ type
|
||||
procedure DuplicarInterno; override;
|
||||
procedure ImprimirInterno; override;
|
||||
procedure PrevisualizarInterno; override;
|
||||
procedure RefrescarInterno; override;
|
||||
|
||||
//Si queremos crear otra vista para el editor heredado solo tendriamos que
|
||||
//sobreescribir este método
|
||||
@ -379,6 +381,8 @@ end;
|
||||
|
||||
procedure TfEditorAlbaranesCliente.FormShow(Sender: TObject);
|
||||
begin
|
||||
cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED
|
||||
|
||||
inherited;
|
||||
|
||||
if not Assigned(ViewGrid) then
|
||||
@ -475,6 +479,13 @@ begin
|
||||
// end;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranesCliente.OnListaAnosChange(Sender: TObject; const Text: string);
|
||||
begin
|
||||
Controller.FiltrarAno(Albaranes, DynWhereDataTable, Text);
|
||||
if Albaranes.DataTable.Active then
|
||||
RefrescarInterno;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranesCliente.PonerTitulos(const ATitulo: string);
|
||||
var
|
||||
FTitulo : String;
|
||||
@ -524,17 +535,37 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranesCliente.RefrescarInterno;
|
||||
begin
|
||||
//Volvemos a cargar los años de los albaranes
|
||||
if Assigned(FController) then
|
||||
ListaAnos := FController.DarListaAnosAlbaranes;
|
||||
|
||||
inherited;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranesCliente.SetController(const Value: IAlbaranesClienteController);
|
||||
begin
|
||||
FController := Value;
|
||||
|
||||
if Assigned(FController) then
|
||||
ListaAnos := FController.DarListaAnosAlbaranes;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranesCliente.SetAlbaranes(const Value: IBizAlbaranCliente);
|
||||
begin
|
||||
FAlbaranes := Value;
|
||||
dsDataTable.DataTable := FAlbaranes.DataTable;
|
||||
if Assigned(ViewGrid) then
|
||||
(ViewGrid as IViewAlbaranesCliente).Albaranes := Albaranes;
|
||||
|
||||
if Assigned(FAlbaranes) then
|
||||
begin
|
||||
//Se guarda el where de la sentencia origen, por si el editor tiene filtros que
|
||||
//afecten a este where y en un futuro se desea volver al where origen (filtro de año))
|
||||
DynWhereDataTable := FAlbaranes.DataTable.DynamicWhere.Xml;
|
||||
|
||||
dsDataTable.DataTable := FAlbaranes.DataTable;
|
||||
if Assigned(ViewGrid) then
|
||||
(ViewGrid as IViewAlbaranesCliente).Albaranes := Albaranes;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
@ -4,7 +4,7 @@ interface
|
||||
|
||||
|
||||
uses
|
||||
SysUtils, uDADataTable, uEditorDBItem,
|
||||
Classes, SysUtils, uDADataTable, uEditorDBItem,
|
||||
uControllerBase, uIDataModuleAlbaranesProveedor, uProveedoresController,
|
||||
uDetallesAlbaranProveedorController, uBizAlbaranesProveedor,
|
||||
uBizDireccionesContacto, uBizInventario;
|
||||
@ -62,6 +62,9 @@ type
|
||||
procedure Preview(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false);
|
||||
procedure Print(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false);
|
||||
|
||||
function DarListaAnosAlbaranes: TStringList;
|
||||
procedure FiltrarAno(AAlbaran: IBizAlbaranProveedor; ADynWhereDataTable: WideString; const Ano: String);
|
||||
|
||||
function GenerarDevolucion(AAlbaran : IBizAlbaranProveedor) : IBizAlbaranProveedor;
|
||||
end;
|
||||
|
||||
@ -138,6 +141,9 @@ type
|
||||
procedure Preview(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false);
|
||||
procedure Print(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false);
|
||||
|
||||
function DarListaAnosAlbaranes: TStringList;
|
||||
procedure FiltrarAno(AAlbaran: IBizAlbaranProveedor; ADynWhereDataTable: WideString; const Ano: String);
|
||||
|
||||
function GenerarDevolucion(AAlbaran : IBizAlbaranProveedor) : IBizAlbaranProveedor;
|
||||
end;
|
||||
|
||||
@ -152,7 +158,7 @@ uses
|
||||
schContactosClient_Intf, Forms, schPedidosProveedorClient_Intf, uFactuGES_App,
|
||||
uBizPedidosProveedor, uPedidosProveedorController,
|
||||
schInventarioClient_Intf, uStringsUtils, uIntegerListUtils,
|
||||
uArticulosController, uBizArticulos, uControllerDetallesBase, Classes,
|
||||
uArticulosController, uBizArticulos, uControllerDetallesBase,
|
||||
schArticulosClient_Intf, uControllerDetallesArticulos, Variants, uDialogUtils,
|
||||
uIEditorAlbaranDevProveedor, uAlbaranesProveedorReportController;
|
||||
|
||||
@ -556,6 +562,11 @@ begin
|
||||
Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf);
|
||||
end;
|
||||
|
||||
function TAlbaranesProveedorController.DarListaAnosAlbaranes: TStringList;
|
||||
begin
|
||||
Result := FDataModule.GetAnosItems;
|
||||
end;
|
||||
|
||||
procedure TAlbaranesProveedorController.DescartarCambios(AAlbaran: IBizAlbaranProveedor);
|
||||
begin
|
||||
if not Assigned(AAlbaran) then
|
||||
@ -969,6 +980,35 @@ begin
|
||||
Result := ASeleccionados;
|
||||
end;
|
||||
|
||||
procedure TAlbaranesProveedorController.FiltrarAno(AAlbaran: IBizAlbaranProveedor; ADynWhereDataTable: WideString; const Ano: String);
|
||||
var
|
||||
Condicion: TDAWhereExpression;
|
||||
FechaIni: String;
|
||||
FechaFin: String;
|
||||
|
||||
begin
|
||||
AAlbaran.DataTable.DynamicWhere.Clear;
|
||||
AAlbaran.DataTable.DynamicWhere.Xml := ADynWhereDataTable;
|
||||
|
||||
if (Ano <> 'Todos') then
|
||||
begin
|
||||
// Filtrar las facturas actuales por empresa
|
||||
FechaIni := '01/01/' + Ano;
|
||||
FechaFin := '31/12/' + Ano;
|
||||
with AAlbaran.DataTable.DynamicWhere do
|
||||
begin
|
||||
// (FECHA_INICIO between FECHA_FIN)
|
||||
Condicion := NewBinaryExpression(NewField('', fld_AlbaranesProveedorFECHA_ALBARAN), NewConstant(FechaIni, datString), dboGreaterOrEqual);
|
||||
Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_AlbaranesProveedorFECHA_ALBARAN), NewConstant(FechaFin, datString), dboLessOrEqual), Condicion, dboAnd);
|
||||
|
||||
if IsEmpty then
|
||||
Expression := Condicion
|
||||
else
|
||||
Expression := NewBinaryExpression(Condicion, Expression, dboAnd);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TAlbaranesProveedorController.FiltrarEmpresa(AAlbaran: IBizAlbaranProveedor);
|
||||
var
|
||||
Condicion: TDAWhereExpression;
|
||||
@ -1138,8 +1178,7 @@ begin
|
||||
Result := FProveedorController;
|
||||
end;
|
||||
|
||||
function TAlbaranesProveedorController.GenerarDevolucion(
|
||||
AAlbaran: IBizAlbaranProveedor): IBizAlbaranProveedor;
|
||||
function TAlbaranesProveedorController.GenerarDevolucion(AAlbaran: IBizAlbaranProveedor): IBizAlbaranProveedor;
|
||||
begin
|
||||
if not Assigned(AAlbaran) then
|
||||
raise Exception.Create ('Albarán no asignado (QuitarDireccionEnvio)');
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
inherited DataModuleAlbaranesProveedor: TDataModuleAlbaranesProveedor
|
||||
OnCreate = DAClientDataModuleCreate
|
||||
Height = 365
|
||||
Width = 462
|
||||
object RORemoteService: TRORemoteService
|
||||
Message = dmConexion.ROMessage
|
||||
@ -438,4 +439,28 @@ inherited DataModuleAlbaranesProveedor: TDataModuleAlbaranesProveedor
|
||||
Left = 328
|
||||
Top = 40
|
||||
end
|
||||
object tbl_ListaAnosAlbaranes: TDAMemDataTable
|
||||
RemoteUpdatesOptions = []
|
||||
Fields = <
|
||||
item
|
||||
Name = 'ANO'
|
||||
DataType = datString
|
||||
Size = 254
|
||||
end>
|
||||
Params = <>
|
||||
StreamingOptions = [soDisableEventsWhileStreaming]
|
||||
RemoteDataAdapter = rda_AlbaranesProveedor
|
||||
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
|
||||
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
|
||||
LogicalName = 'ListaAnosAlbaranes'
|
||||
IndexDefs = <>
|
||||
Left = 168
|
||||
Top = 224
|
||||
end
|
||||
object ds_ListaAnosAlbaranes: TDADataSource
|
||||
DataSet = tbl_ListaAnosAlbaranes.Dataset
|
||||
DataTable = tbl_ListaAnosAlbaranes
|
||||
Left = 168
|
||||
Top = 168
|
||||
end
|
||||
end
|
||||
|
||||
@ -20,6 +20,8 @@ type
|
||||
ds_AlbaranesProveedor: TDADataSource;
|
||||
tbl_AlbaranesProveedor_Detalles: TDAMemDataTable;
|
||||
ds_AlbaranesProveedor_Detalles: TDADataSource;
|
||||
tbl_ListaAnosAlbaranes: TDAMemDataTable;
|
||||
ds_ListaAnosAlbaranes: TDADataSource;
|
||||
procedure DAClientDataModuleCreate(Sender: TObject);
|
||||
|
||||
private
|
||||
@ -37,6 +39,8 @@ type
|
||||
function GetReport(const ListaID: TIntegerList): Binary;
|
||||
function GetRptWordAlbaran(const AID: Integer): Binary;
|
||||
function GetRptPDFAlbaran(const AID: Integer): Binary;
|
||||
|
||||
function GetAnosItems : TStringList;
|
||||
end;
|
||||
|
||||
implementation
|
||||
@ -116,6 +120,30 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function TDataModuleAlbaranesProveedor.GetAnosItems: TStringList;
|
||||
var
|
||||
AListaAnos: TStringList;
|
||||
begin
|
||||
AListaAnos := TStringList.Create;
|
||||
ShowHourglassCursor;
|
||||
try
|
||||
with tbl_ListaAnosAlbaranes 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;
|
||||
|
||||
function TDataModuleAlbaranesProveedor.GetItem(const ID: Integer): IBizAlbaranProveedor;
|
||||
var
|
||||
Condicion: TDAWhereExpression;
|
||||
|
||||
@ -3,11 +3,12 @@ unit uIDataModuleAlbaranesProveedor;
|
||||
interface
|
||||
|
||||
uses
|
||||
uBizAlbaranesProveedor;
|
||||
Classes, uBizAlbaranesProveedor;
|
||||
|
||||
type
|
||||
IDataModuleAlbaranesProveedor = interface
|
||||
['{2BAD8B3B-B57D-475C-B528-F82B320B2332}']
|
||||
function GetAnosItems : TStringList;
|
||||
function GetItems: IBizAlbaranProveedor;
|
||||
function GetItem(const ID : Integer) : IBizAlbaranProveedor;
|
||||
function NewItem : IBizAlbaranProveedor;
|
||||
|
||||
@ -9,13 +9,21 @@ const
|
||||
{ Data table rules ids
|
||||
Feel free to change them to something more human readable
|
||||
but make sure they are unique in the context of your application }
|
||||
RID_AlbaranesProveedor = '{97135F3A-B8D7-4534-8A29-CB50202C8413}';
|
||||
RID_AlbaranesProveedor_Detalles = '{D817CBF4-1C3C-4003-9145-8923D9187710}';
|
||||
RID_ListaAnosAlbaranes = '{8672B75E-3E9B-4DB7-A7A2-616EDE5B3E33}';
|
||||
RID_AlbaranesProveedor = '{0B80E923-C1D3-49AD-A4EB-B16C33839FAF}';
|
||||
RID_AlbaranesProveedor_Detalles = '{EEB786E5-3D5D-4751-A154-1023C9E86ABC}';
|
||||
|
||||
{ Data table names }
|
||||
nme_ListaAnosAlbaranes = 'ListaAnosAlbaranes';
|
||||
nme_AlbaranesProveedor = 'AlbaranesProveedor';
|
||||
nme_AlbaranesProveedor_Detalles = 'AlbaranesProveedor_Detalles';
|
||||
|
||||
{ ListaAnosAlbaranes fields }
|
||||
fld_ListaAnosAlbaranesANO = 'ANO';
|
||||
|
||||
{ ListaAnosAlbaranes field indexes }
|
||||
idx_ListaAnosAlbaranesANO = 0;
|
||||
|
||||
{ AlbaranesProveedor fields }
|
||||
fld_AlbaranesProveedorID = 'ID';
|
||||
fld_AlbaranesProveedorID_EMPRESA = 'ID_EMPRESA';
|
||||
@ -141,9 +149,44 @@ const
|
||||
idx_AlbaranesProveedor_DetallesREFERENCIA_FABRICANTE = 16;
|
||||
|
||||
type
|
||||
{ IListaAnosAlbaranes }
|
||||
IListaAnosAlbaranes = interface(IDAStronglyTypedDataTable)
|
||||
['{5D5577A0-2463-4F53-84C1-0AD1444ACD5E}']
|
||||
{ Property getters and setters }
|
||||
function GetANOValue: String;
|
||||
procedure SetANOValue(const aValue: String);
|
||||
function GetANOIsNull: Boolean;
|
||||
procedure SetANOIsNull(const aValue: Boolean);
|
||||
|
||||
|
||||
{ Properties }
|
||||
property ANO: String read GetANOValue write SetANOValue;
|
||||
property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull;
|
||||
end;
|
||||
|
||||
{ TListaAnosAlbaranesDataTableRules }
|
||||
TListaAnosAlbaranesDataTableRules = class(TIntfObjectDADataTableRules, IListaAnosAlbaranes)
|
||||
private
|
||||
protected
|
||||
{ Property getters and setters }
|
||||
function GetANOValue: String; virtual;
|
||||
procedure SetANOValue(const aValue: String); virtual;
|
||||
function GetANOIsNull: Boolean; virtual;
|
||||
procedure SetANOIsNull(const aValue: Boolean); virtual;
|
||||
|
||||
{ Properties }
|
||||
property ANO: String read GetANOValue write SetANOValue;
|
||||
property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull;
|
||||
|
||||
public
|
||||
constructor Create(aDataTable: TDADataTable); override;
|
||||
destructor Destroy; override;
|
||||
|
||||
end;
|
||||
|
||||
{ IAlbaranesProveedor }
|
||||
IAlbaranesProveedor = interface(IDAStronglyTypedDataTable)
|
||||
['{8B370BF7-B54A-4FDD-B65B-90F2C8EBBC78}']
|
||||
['{E4144497-578E-458A-97C6-7CB8D148F6A4}']
|
||||
{ Property getters and setters }
|
||||
function GetIDValue: Integer;
|
||||
procedure SetIDValue(const aValue: Integer);
|
||||
@ -658,7 +701,7 @@ type
|
||||
|
||||
{ IAlbaranesProveedor_Detalles }
|
||||
IAlbaranesProveedor_Detalles = interface(IDAStronglyTypedDataTable)
|
||||
['{4E46B4A0-F866-4EFA-819C-D89CA70CA42E}']
|
||||
['{6500972B-0466-4C76-8136-B7CA39C10FE6}']
|
||||
{ Property getters and setters }
|
||||
function GetIDValue: Integer;
|
||||
procedure SetIDValue(const aValue: Integer);
|
||||
@ -887,6 +930,39 @@ implementation
|
||||
|
||||
uses Variants, uROBinaryHelpers;
|
||||
|
||||
{ TListaAnosAlbaranesDataTableRules }
|
||||
constructor TListaAnosAlbaranesDataTableRules.Create(aDataTable: TDADataTable);
|
||||
begin
|
||||
inherited;
|
||||
end;
|
||||
|
||||
destructor TListaAnosAlbaranesDataTableRules.Destroy;
|
||||
begin
|
||||
inherited;
|
||||
end;
|
||||
|
||||
function TListaAnosAlbaranesDataTableRules.GetANOValue: String;
|
||||
begin
|
||||
result := DataTable.Fields[idx_ListaAnosAlbaranesANO].AsString;
|
||||
end;
|
||||
|
||||
procedure TListaAnosAlbaranesDataTableRules.SetANOValue(const aValue: String);
|
||||
begin
|
||||
DataTable.Fields[idx_ListaAnosAlbaranesANO].AsString := aValue;
|
||||
end;
|
||||
|
||||
function TListaAnosAlbaranesDataTableRules.GetANOIsNull: boolean;
|
||||
begin
|
||||
result := DataTable.Fields[idx_ListaAnosAlbaranesANO].IsNull;
|
||||
end;
|
||||
|
||||
procedure TListaAnosAlbaranesDataTableRules.SetANOIsNull(const aValue: Boolean);
|
||||
begin
|
||||
if aValue then
|
||||
DataTable.Fields[idx_ListaAnosAlbaranesANO].AsVariant := Null;
|
||||
end;
|
||||
|
||||
|
||||
{ TAlbaranesProveedorDataTableRules }
|
||||
constructor TAlbaranesProveedorDataTableRules.Create(aDataTable: TDADataTable);
|
||||
var
|
||||
@ -2142,6 +2218,7 @@ end;
|
||||
|
||||
|
||||
initialization
|
||||
RegisterDataTableRules(RID_ListaAnosAlbaranes, TListaAnosAlbaranesDataTableRules);
|
||||
RegisterDataTableRules(RID_AlbaranesProveedor, TAlbaranesProveedorDataTableRules);
|
||||
RegisterDataTableRules(RID_AlbaranesProveedor_Detalles, TAlbaranesProveedor_DetallesDataTableRules);
|
||||
|
||||
|
||||
@ -9,13 +9,48 @@ const
|
||||
{ Delta rules ids
|
||||
Feel free to change them to something more human readable
|
||||
but make sure they are unique in the context of your application }
|
||||
RID_AlbaranesProveedorDelta = '{4418764D-F55C-4159-8188-FB26EB2712F2}';
|
||||
RID_AlbaranesProveedor_DetallesDelta = '{F4091255-CE14-4478-BE97-D015483ED476}';
|
||||
RID_ListaAnosAlbaranesDelta = '{8ACFAAB6-FAD9-462B-9EFB-058863E6DE98}';
|
||||
RID_AlbaranesProveedorDelta = '{12E2ABCF-FA73-4601-A9A4-9E862D682126}';
|
||||
RID_AlbaranesProveedor_DetallesDelta = '{A0DF5047-4CFE-47B9-A8A1-714BDC68631E}';
|
||||
|
||||
type
|
||||
{ IListaAnosAlbaranesDelta }
|
||||
IListaAnosAlbaranesDelta = interface(IListaAnosAlbaranes)
|
||||
['{8ACFAAB6-FAD9-462B-9EFB-058863E6DE98}']
|
||||
{ Property getters and setters }
|
||||
function GetOldANOValue : String;
|
||||
|
||||
{ Properties }
|
||||
property OldANO : String read GetOldANOValue;
|
||||
end;
|
||||
|
||||
{ TListaAnosAlbaranesBusinessProcessorRules }
|
||||
TListaAnosAlbaranesBusinessProcessorRules = class(TDABusinessProcessorRules, IListaAnosAlbaranes, IListaAnosAlbaranesDelta)
|
||||
private
|
||||
protected
|
||||
{ Property getters and setters }
|
||||
function GetANOValue: String; virtual;
|
||||
function GetANOIsNull: Boolean; virtual;
|
||||
function GetOldANOValue: String; virtual;
|
||||
function GetOldANOIsNull: Boolean; virtual;
|
||||
procedure SetANOValue(const aValue: String); virtual;
|
||||
procedure SetANOIsNull(const aValue: Boolean); virtual;
|
||||
|
||||
{ Properties }
|
||||
property ANO : String read GetANOValue write SetANOValue;
|
||||
property ANOIsNull : Boolean read GetANOIsNull write SetANOIsNull;
|
||||
property OldANO : String read GetOldANOValue;
|
||||
property OldANOIsNull : Boolean read GetOldANOIsNull;
|
||||
|
||||
public
|
||||
constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
|
||||
destructor Destroy; override;
|
||||
|
||||
end;
|
||||
|
||||
{ IAlbaranesProveedorDelta }
|
||||
IAlbaranesProveedorDelta = interface(IAlbaranesProveedor)
|
||||
['{4418764D-F55C-4159-8188-FB26EB2712F2}']
|
||||
['{12E2ABCF-FA73-4601-A9A4-9E862D682126}']
|
||||
{ Property getters and setters }
|
||||
function GetOldIDValue : Integer;
|
||||
function GetOldID_EMPRESAValue : Integer;
|
||||
@ -531,7 +566,7 @@ type
|
||||
|
||||
{ IAlbaranesProveedor_DetallesDelta }
|
||||
IAlbaranesProveedor_DetallesDelta = interface(IAlbaranesProveedor_Detalles)
|
||||
['{F4091255-CE14-4478-BE97-D015483ED476}']
|
||||
['{A0DF5047-4CFE-47B9-A8A1-714BDC68631E}']
|
||||
{ Property getters and setters }
|
||||
function GetOldIDValue : Integer;
|
||||
function GetOldID_ALBARANValue : Integer;
|
||||
@ -760,6 +795,49 @@ implementation
|
||||
uses
|
||||
Variants, uROBinaryHelpers, uDAInterfaces;
|
||||
|
||||
{ TListaAnosAlbaranesBusinessProcessorRules }
|
||||
constructor TListaAnosAlbaranesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
|
||||
begin
|
||||
inherited;
|
||||
end;
|
||||
|
||||
destructor TListaAnosAlbaranesBusinessProcessorRules.Destroy;
|
||||
begin
|
||||
inherited;
|
||||
end;
|
||||
|
||||
function TListaAnosAlbaranesBusinessProcessorRules.GetANOValue: String;
|
||||
begin
|
||||
result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO];
|
||||
end;
|
||||
|
||||
function TListaAnosAlbaranesBusinessProcessorRules.GetANOIsNull: Boolean;
|
||||
begin
|
||||
result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO]);
|
||||
end;
|
||||
|
||||
function TListaAnosAlbaranesBusinessProcessorRules.GetOldANOValue: String;
|
||||
begin
|
||||
result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosAlbaranesANO];
|
||||
end;
|
||||
|
||||
function TListaAnosAlbaranesBusinessProcessorRules.GetOldANOIsNull: Boolean;
|
||||
begin
|
||||
result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosAlbaranesANO]);
|
||||
end;
|
||||
|
||||
procedure TListaAnosAlbaranesBusinessProcessorRules.SetANOValue(const aValue: String);
|
||||
begin
|
||||
BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO] := aValue;
|
||||
end;
|
||||
|
||||
procedure TListaAnosAlbaranesBusinessProcessorRules.SetANOIsNull(const aValue: Boolean);
|
||||
begin
|
||||
if aValue then
|
||||
BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO] := Null;
|
||||
end;
|
||||
|
||||
|
||||
{ TAlbaranesProveedorBusinessProcessorRules }
|
||||
constructor TAlbaranesProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
|
||||
var
|
||||
@ -2597,6 +2675,7 @@ end;
|
||||
|
||||
|
||||
initialization
|
||||
RegisterBusinessProcessorRules(RID_ListaAnosAlbaranesDelta, TListaAnosAlbaranesBusinessProcessorRules);
|
||||
RegisterBusinessProcessorRules(RID_AlbaranesProveedorDelta, TAlbaranesProveedorBusinessProcessorRules);
|
||||
RegisterBusinessProcessorRules(RID_AlbaranesProveedor_DetallesDelta, TAlbaranesProveedor_DetallesBusinessProcessorRules);
|
||||
|
||||
|
||||
@ -14,6 +14,33 @@ object srvAlbaranesProveedor: TsrvAlbaranesProveedor
|
||||
ConnectionManager = dmServer.ConnectionManager
|
||||
DataDictionary = DADataDictionary
|
||||
Datasets = <
|
||||
item
|
||||
Params = <>
|
||||
Statements = <
|
||||
item
|
||||
Connection = 'IBX'
|
||||
ConnectionType = 'Interbase'
|
||||
Default = True
|
||||
Name = 'IBX'
|
||||
SQL =
|
||||
'select ANO from'#10'(select distinct(substr(FECHA_ALBARAN, 1,4)) as ' +
|
||||
'ANO'#10'from albaranes_proveedor'#10'order by 1 desc)'#10#10'UNION ALL'#10#10'select' +
|
||||
' distinct '#39'Todos'#39' as ANO'#10'from empresas'#10
|
||||
StatementType = stSQL
|
||||
ColumnMappings = <
|
||||
item
|
||||
DatasetField = 'ANO'
|
||||
TableField = 'ANO'
|
||||
end>
|
||||
end>
|
||||
Name = 'ListaAnosAlbaranes'
|
||||
Fields = <
|
||||
item
|
||||
Name = 'ANO'
|
||||
DataType = datString
|
||||
Size = 254
|
||||
end>
|
||||
end
|
||||
item
|
||||
Params = <>
|
||||
Statements = <
|
||||
|
||||
@ -126,6 +126,18 @@ inherited fEditorAlbaranesProveedor: TfEditorAlbaranesProveedor
|
||||
inherited tbxMain: TTBXToolbar
|
||||
ExplicitWidth = 606
|
||||
end
|
||||
inherited tbxFiltro: TTBXToolbar
|
||||
ExplicitWidth = 427
|
||||
inherited lblAno: TTBXLabelItem
|
||||
Visible = True
|
||||
end
|
||||
inherited cbxListaAnos: TTBXComboBoxItem
|
||||
Visible = True
|
||||
end
|
||||
inherited sepAno: TTBXSeparatorItem
|
||||
Visible = True
|
||||
end
|
||||
end
|
||||
inherited tbxMenu: TTBXToolbar
|
||||
ExplicitWidth = 606
|
||||
object TBXSubmenuItem2: TTBXSubmenuItem [4]
|
||||
@ -139,8 +151,10 @@ inherited fEditorAlbaranesProveedor: TfEditorAlbaranesProveedor
|
||||
end
|
||||
end
|
||||
inherited TBXTMain2: TTBXToolbar
|
||||
Left = 427
|
||||
Visible = True
|
||||
ExplicitWidth = 237
|
||||
ExplicitLeft = 427
|
||||
ExplicitWidth = 117
|
||||
object TBXItem41: TTBXItem
|
||||
Action = actGenerarDevolucion
|
||||
DisplayMode = nbdmImageAndText
|
||||
|
||||
@ -34,6 +34,7 @@ type
|
||||
procedure actGenerarFacturaExecute(Sender: TObject);
|
||||
procedure actGenerarFacturaUpdate(Sender: TObject);
|
||||
procedure actEliminarUpdate(Sender: TObject);
|
||||
procedure OnListaAnosChange(Sender: TObject; const Text: string);
|
||||
procedure actGenerarDevolucionUpdate(Sender: TObject);
|
||||
procedure actGenerarDevolucionExecute(Sender: TObject);
|
||||
|
||||
@ -53,6 +54,7 @@ type
|
||||
procedure DuplicarInterno; override;
|
||||
procedure PrevisualizarInterno; override;
|
||||
procedure ImprimirInterno; override;
|
||||
procedure RefrescarInterno; override;
|
||||
|
||||
//Si queremos crear otra vista para el editor heredado solo tendriamos que
|
||||
//sobreescribir este metodo
|
||||
@ -209,6 +211,8 @@ end;
|
||||
|
||||
procedure TfEditorAlbaranesProveedor.FormShow(Sender: TObject);
|
||||
begin
|
||||
cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED
|
||||
|
||||
inherited;
|
||||
|
||||
if not Assigned(ViewGrid) then
|
||||
@ -302,6 +306,13 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranesProveedor.OnListaAnosChange(Sender: TObject; const Text: string);
|
||||
begin
|
||||
Controller.FiltrarAno(Albaranes, DynWhereDataTable, Text);
|
||||
if Albaranes.DataTable.Active then
|
||||
RefrescarInterno;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranesProveedor.PonerTitulos(const ATitulo: string);
|
||||
var
|
||||
FTitulo : String;
|
||||
@ -351,17 +362,37 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranesProveedor.RefrescarInterno;
|
||||
begin
|
||||
//Volvemos a cargar los años de los albaranes
|
||||
if Assigned(FController) then
|
||||
ListaAnos := FController.DarListaAnosAlbaranes;
|
||||
|
||||
inherited;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranesProveedor.SetController(const Value: IAlbaranesProveedorController);
|
||||
begin
|
||||
FController := Value;
|
||||
|
||||
if Assigned(FController) then
|
||||
ListaAnos := FController.DarListaAnosAlbaranes;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranesProveedor.SetAlbaranes(const Value: IBizAlbaranProveedor);
|
||||
begin
|
||||
FAlbaranes := Value;
|
||||
dsDataTable.DataTable := FAlbaranes.DataTable;
|
||||
if Assigned(ViewGrid) then
|
||||
(ViewGrid as IViewAlbaranesProveedor).Albaranes := Albaranes;
|
||||
|
||||
if Assigned(FAlbaranes) then
|
||||
begin
|
||||
//Se guarda el where de la sentencia origen, por si el editor tiene filtros que
|
||||
//afecten a este where y en un futuro se desea volver al where origen (filtro de año))
|
||||
DynWhereDataTable := FAlbaranes.DataTable.DynamicWhere.Xml;
|
||||
|
||||
dsDataTable.DataTable := FAlbaranes.DataTable;
|
||||
if Assigned(ViewGrid) then
|
||||
(ViewGrid as IViewAlbaranesProveedor).Albaranes := Albaranes;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
@ -54,6 +54,9 @@ type
|
||||
function ElegirFacturas(AFacturas : IBizFacturaCliente; AMensaje: String; AMultiSelect: Boolean): IBizFacturaCliente;
|
||||
function ExtraerSeleccionados(ARecibosCliente: IBizFacturaCliente) : IBizFacturaCliente;
|
||||
procedure EnviarFacturaPorEMail(AFactura : IBizFacturaCliente);
|
||||
|
||||
function DarListaAnosFacturas: TStringList;
|
||||
procedure FiltrarAno(AFactura: IBizFacturaCliente; ADynWhereDataTable: WideString; const Ano: String);
|
||||
end;
|
||||
|
||||
TFacturasClienteController = class(TControllerBase, IFacturasClienteController)
|
||||
@ -119,6 +122,9 @@ type
|
||||
function ElegirFacturas(AFacturas : IBizFacturaCliente; AMensaje: String; AMultiSelect: Boolean): IBizFacturaCliente;
|
||||
function ExtraerSeleccionados(AFacturasCliente: IBizFacturaCliente) : IBizFacturaCliente;
|
||||
procedure EnviarFacturaPorEMail(AFactura : IBizFacturaCliente);
|
||||
|
||||
function DarListaAnosFacturas: TStringList;
|
||||
procedure FiltrarAno(AFactura: IBizFacturaCliente; ADynWhereDataTable: WideString; const Ano: String);
|
||||
end;
|
||||
|
||||
implementation
|
||||
@ -132,7 +138,8 @@ uses
|
||||
uBizDetallesAlbaranCliente, uFacturasClienteReportController,
|
||||
DateUtils, Forms, uFormasPagoController, uBizFormasPago, uIEditorElegirFacturasCliente,
|
||||
uRecibosClienteController, uBizRecibosCliente, uIntegerListUtils,
|
||||
uSistemaFunc, uDialogElegirEMail, uEMailUtils, Dialogs, uStringsUtils;
|
||||
uSistemaFunc, uDialogElegirEMail, uEMailUtils, Dialogs, uStringsUtils,
|
||||
uROXMLIntf;
|
||||
|
||||
|
||||
{procedure CopiarArticulosPedido(AOrigen: IBizDetallesPedidoCliente;
|
||||
@ -381,7 +388,7 @@ end;}
|
||||
function TFacturasClienteController.Buscar(const ID: Integer): IBizFacturaCliente;
|
||||
begin
|
||||
Result := (FDataModule as IDataModuleFacturasCliente).GetItem(ID);
|
||||
FiltrarEmpresa(Result);
|
||||
FiltrarEmpresa(Result);
|
||||
end;
|
||||
|
||||
function TFacturasClienteController.BuscarTodasPendientesComision(IdAgente:Integer; IdComision: Integer; IdFacturasAsociadas: String): IBizFacturaCliente;
|
||||
@ -504,6 +511,11 @@ begin
|
||||
Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf);
|
||||
end;
|
||||
|
||||
function TFacturasClienteController.DarListaAnosFacturas: TStringList;
|
||||
begin
|
||||
Result := FDataModule.GetAnosItems;
|
||||
end;
|
||||
|
||||
procedure TFacturasClienteController.DescartarCambios(AFactura: IBizFacturaCliente);
|
||||
begin
|
||||
if not Assigned(AFactura) then
|
||||
@ -930,6 +942,35 @@ begin
|
||||
Result := ASeleccionados;
|
||||
end;
|
||||
|
||||
procedure TFacturasClienteController.FiltrarAno(AFactura: IBizFacturaCliente; ADynWhereDataTable: WideString; const Ano: String);
|
||||
var
|
||||
Condicion: TDAWhereExpression;
|
||||
FechaIni: String;
|
||||
FechaFin: String;
|
||||
|
||||
begin
|
||||
AFactura.DataTable.DynamicWhere.Clear;
|
||||
AFactura.DataTable.DynamicWhere.Xml := ADynWhereDataTable;
|
||||
|
||||
if (Ano <> 'Todos') then
|
||||
begin
|
||||
// Filtrar las facturas actuales por empresa
|
||||
FechaIni := '01/01/' + Ano;
|
||||
FechaFin := '31/12/' + Ano;
|
||||
with AFactura.DataTable.DynamicWhere do
|
||||
begin
|
||||
// (FECHA_INICIO between FECHA_FIN)
|
||||
Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteFECHA_FACTURA), NewConstant(FechaIni, datString), dboGreaterOrEqual);
|
||||
Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_FacturasClienteFECHA_FACTURA), NewConstant(FechaFin, datString), dboLessOrEqual), Condicion, dboAnd);
|
||||
|
||||
if IsEmpty then
|
||||
Expression := Condicion
|
||||
else
|
||||
Expression := NewBinaryExpression(Condicion, Expression, dboAnd);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFacturasClienteController.FiltrarEmpresa(AFactura: IBizFacturaCliente);
|
||||
var
|
||||
Condicion: TDAWhereExpression;
|
||||
@ -1225,4 +1266,3 @@ begin
|
||||
end;
|
||||
|
||||
end.
|
||||
| ||||