2011-11-14 17:40:41 +00:00
|
|
|
|
unit uViewDetallesContratoCliente;
|
|
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
|
|
|
|
uses
|
|
|
|
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
|
|
|
|
Dialogs, uViewDetallesArticulos, cxStyles, cxCustomData, cxGraphics, cxFilter,
|
|
|
|
|
|
cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, PngImageList,
|
|
|
|
|
|
uDADataTable, ActnList, ComCtrls, ToolWin, cxGridLevel, cxClasses, cxControls,
|
|
|
|
|
|
cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
|
|
|
|
|
|
cxGrid, cxImageComboBox, cxTextEdit, cxMaskEdit, cxCheckBox, cxCurrencyEdit,
|
|
|
|
|
|
Grids, DBGrids, StdCtrls, ExtCtrls, cxRichEdit, ExtActns, StdActns,
|
|
|
|
|
|
JvExStdCtrls, JvCombobox, JvColorCombo, TB2Item, TBX, TB2Dock, TB2Toolbar,
|
|
|
|
|
|
uControllerDetallesArticulos, uBizContratosCliente, uDAInterfaces, Buttons,
|
|
|
|
|
|
Mask, DBCtrls, cxButtonEdit, cxDropDownEdit, Menus, cxGridCustomPopupMenu,
|
|
|
|
|
|
cxGridPopupMenu, cxDBLookupComboBox, cxCalc, cxEditRepositoryItems,
|
|
|
|
|
|
cxContainer, cxLookupEdit, cxDBLookupEdit, uBizDetallesContratoCliente,
|
2022-03-12 10:40:36 +00:00
|
|
|
|
cxMemo, uBizDetallesPresupuestoCliente, cxDBEdit, TBXExtItems;
|
2011-11-14 17:40:41 +00:00
|
|
|
|
|
|
|
|
|
|
type
|
|
|
|
|
|
IViewDetallesContratoCliente = interface(IViewDetallesArticulos)
|
|
|
|
|
|
['{61D7EB63-B37B-40D1-A36A-15F7F09525A4}']
|
|
|
|
|
|
function GetContrato: IBizContratoCliente;
|
|
|
|
|
|
procedure SetContrato(const Value: IBizContratoCliente);
|
|
|
|
|
|
property Contrato: IBizContratoCliente read GetContrato write SetContrato;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
TfrViewDetallesContratoCliente = class(TfrViewDetallesArticulos, IViewDetallesContratoCliente)
|
|
|
|
|
|
actAsignarDescuento: TAction;
|
|
|
|
|
|
TBXItem18: TTBXItem;
|
|
|
|
|
|
TBXSeparatorItem9: TTBXSeparatorItem;
|
|
|
|
|
|
DAPropiedades: TDADataSource;
|
2012-07-11 15:39:13 +00:00
|
|
|
|
cxGridViewPROPIEDAD: TcxGridDBColumn;
|
2011-11-14 17:40:41 +00:00
|
|
|
|
cxLookupComboBox1: TcxLookupComboBox;
|
|
|
|
|
|
DAValores: TDADataSource;
|
|
|
|
|
|
cxRichEdit1: TcxRichEdit;
|
|
|
|
|
|
cxGridViewTIPO_ARTICULO: TcxGridDBColumn;
|
|
|
|
|
|
TBXSubmenuItem1: TTBXSubmenuItem;
|
|
|
|
|
|
TBXSeparatorItem6: TTBXSeparatorItem;
|
|
|
|
|
|
TBXItem14: TTBXItem;
|
|
|
|
|
|
actCapituloCocina: TAction;
|
|
|
|
|
|
actCapituloArmarioF: TAction;
|
|
|
|
|
|
actCapituloBano: TAction;
|
|
|
|
|
|
TBXItem15: TTBXItem;
|
|
|
|
|
|
TBXItem16: TTBXItem;
|
|
|
|
|
|
actCapituloArmarioI: TAction;
|
|
|
|
|
|
TBXItem17: TTBXItem;
|
|
|
|
|
|
actCapituloElectrodomesticos: TAction;
|
|
|
|
|
|
actCapituloVarios: TAction;
|
|
|
|
|
|
TBXItem19: TTBXItem;
|
|
|
|
|
|
TBXItem20: TTBXItem;
|
|
|
|
|
|
TBXSeparatorItem7: TTBXSeparatorItem;
|
|
|
|
|
|
TBXSeparatorItem10: TTBXSeparatorItem;
|
|
|
|
|
|
actCapituloImportes: TAction;
|
|
|
|
|
|
TBXSeparatorItem11: TTBXSeparatorItem;
|
|
|
|
|
|
TBXItem21: TTBXItem;
|
2012-07-11 15:39:13 +00:00
|
|
|
|
cxLookupComboBox2: TcxLookupComboBox;
|
2022-03-12 10:40:36 +00:00
|
|
|
|
actCapituloSepAmbientes: TAction;
|
|
|
|
|
|
actCapituloFreArmCorredera: TAction;
|
|
|
|
|
|
actCapituloFreArmAbatible: TAction;
|
|
|
|
|
|
actCapituloIntArmForrado: TAction;
|
|
|
|
|
|
actCapituloClaSemSuspendido: TAction;
|
|
|
|
|
|
TBXSeparatorItem12: TTBXSeparatorItem;
|
|
|
|
|
|
TBXItem22: TTBXItem;
|
|
|
|
|
|
TBXItem23: TTBXItem;
|
|
|
|
|
|
TBXItem24: TTBXItem;
|
|
|
|
|
|
TBXItem25: TTBXItem;
|
|
|
|
|
|
TBXItem26: TTBXItem;
|
|
|
|
|
|
edtPrecioPunto: TcxDBCurrencyEdit;
|
|
|
|
|
|
bRecalcularPrecioPunto: TButton;
|
|
|
|
|
|
TBXLabelItem1: TTBXLabelItem;
|
2022-10-21 09:41:20 +00:00
|
|
|
|
actCapituloServInstalacion: TAction;
|
|
|
|
|
|
actCapituloServSuministro: TAction;
|
|
|
|
|
|
TBXItem27: TTBXItem;
|
|
|
|
|
|
TBXItem28: TTBXItem;
|
2024-04-19 15:09:52 +00:00
|
|
|
|
TBXToolbar2: TTBXToolbar;
|
|
|
|
|
|
TBXLabelItem2: TTBXLabelItem;
|
|
|
|
|
|
bRecalcularDescuentoCapitulo: TButton;
|
|
|
|
|
|
edtDescuentoCapitulo: TcxDBCurrencyEdit;
|
|
|
|
|
|
actCapituloIntEstCristal: TAction;
|
|
|
|
|
|
TBXItem29: TTBXItem;
|
2011-11-14 17:40:41 +00:00
|
|
|
|
procedure actAsignarDescuentoExecute(Sender: TObject);
|
|
|
|
|
|
procedure actAsignarDescuentoUpdate(Sender: TObject);
|
|
|
|
|
|
procedure CustomViewShow(Sender: TObject);
|
|
|
|
|
|
procedure cxGridViewDESCRIPCIONGetPropertiesForEdit(Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
|
|
|
|
|
var AProperties: TcxCustomEditProperties);
|
|
|
|
|
|
procedure actCapituloBanoExecute(Sender: TObject);
|
|
|
|
|
|
procedure actCapituloArmarioFExecute(Sender: TObject);
|
|
|
|
|
|
procedure actCapituloArmarioIExecute(Sender: TObject);
|
|
|
|
|
|
procedure actCapituloCocinaExecute(Sender: TObject);
|
|
|
|
|
|
procedure actCapituloElectrodomesticosExecute(Sender: TObject);
|
|
|
|
|
|
procedure actCapituloVariosExecute(Sender: TObject);
|
|
|
|
|
|
procedure actAnadirExecute(Sender: TObject);
|
|
|
|
|
|
procedure actCapituloImportesExecute(Sender: TObject);
|
2022-03-12 10:40:36 +00:00
|
|
|
|
procedure OnVISIBLEPropertiesEditValueChanged(Sender: TObject);
|
2011-11-14 17:40:41 +00:00
|
|
|
|
procedure CustomViewDestroy(Sender: TObject);
|
2012-07-11 15:39:13 +00:00
|
|
|
|
procedure cxGridViewPROPIEDADGetPropertiesForEdit(
|
|
|
|
|
|
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
|
|
|
|
|
var AProperties: TcxCustomEditProperties);
|
2022-03-12 10:40:36 +00:00
|
|
|
|
procedure actCapituloSepAmbientesExecute(Sender: TObject);
|
|
|
|
|
|
procedure actCapituloFreArmCorrederaExecute(Sender: TObject);
|
|
|
|
|
|
procedure actCapituloFreArmAbatibleExecute(Sender: TObject);
|
|
|
|
|
|
procedure actCapituloIntArmForradoExecute(Sender: TObject);
|
|
|
|
|
|
procedure actCapituloClaSemSuspendidoExecute(Sender: TObject);
|
2022-10-21 09:41:20 +00:00
|
|
|
|
procedure actCapituloServSuministroExecute(Sender: TObject);
|
|
|
|
|
|
procedure actCapituloServInstalacionExecute(Sender: TObject);
|
2024-04-19 15:09:52 +00:00
|
|
|
|
procedure actCapituloIntEstCristalExecute(Sender: TObject);
|
2011-11-14 17:40:41 +00:00
|
|
|
|
|
|
|
|
|
|
private
|
2022-03-12 10:40:36 +00:00
|
|
|
|
procedure AnadirCapitulo(const Tipo: String;const Descripcion: String; const Descuento:Boolean = false; const ConstanteConfiguracion: String = '');
|
2011-11-14 17:40:41 +00:00
|
|
|
|
|
|
|
|
|
|
protected
|
|
|
|
|
|
FContrato: IBizContratoCliente;
|
|
|
|
|
|
FPropiedades: IBizPropiedades;
|
|
|
|
|
|
function GetContrato: IBizContratoCliente;
|
|
|
|
|
|
procedure SetContrato(const Value: IBizContratoCliente);
|
|
|
|
|
|
|
|
|
|
|
|
procedure AnadirArticulosInterno; override;
|
|
|
|
|
|
procedure RellenarArticulosInterno; override;
|
|
|
|
|
|
function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; override;
|
|
|
|
|
|
|
|
|
|
|
|
function EsTipoEditable(AItem: TcxCustomGridTableItem): Boolean; override;
|
|
|
|
|
|
|
|
|
|
|
|
public
|
|
|
|
|
|
property Contrato: IBizContratoCliente read GetContrato write SetContrato;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
implementation
|
|
|
|
|
|
{$R *.dfm}
|
|
|
|
|
|
|
2024-04-19 15:09:52 +00:00
|
|
|
|
uses
|
|
|
|
|
|
|
|
|
|
|
|
uFactuGES_App, uTypesConstConfiguration,
|
|
|
|
|
|
uControllerDetallesBase, uDetallesContratoClienteController, schContratosClienteClient_Intf,
|
2023-04-25 16:40:44 +00:00
|
|
|
|
uDetallesPresupuestoClienteController, cxGridExportLink,
|
2011-11-14 17:40:41 +00:00
|
|
|
|
uCalculosUtils;
|
|
|
|
|
|
|
|
|
|
|
|
{ TfrViewDetallesContratoProveedor }
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesContratoCliente.actAnadirExecute(Sender: TObject);
|
|
|
|
|
|
var
|
|
|
|
|
|
AuxTipo: String;
|
|
|
|
|
|
begin
|
|
|
|
|
|
AuxTipo := '';
|
|
|
|
|
|
//En el caso de estar dentro de un capitulo almacenamos el tipo de articulo del capitulo
|
|
|
|
|
|
if FContrato.Detalles.TIPO_DETALLE = TIPO_DETALLE_CONCEPTO then
|
|
|
|
|
|
AuxTipo := FContrato.Detalles.TIPO_ARTICULO;
|
|
|
|
|
|
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
|
|
|
|
|
|
//Asignamos el tipo de articulo del capitulo
|
|
|
|
|
|
(Controller as IDetallesContratoClienteController).SetTipoArticulo(Detalles, AuxTipo);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesContratoCliente.actAsignarDescuentoExecute(Sender: TObject);
|
|
|
|
|
|
{var
|
|
|
|
|
|
AuxTop, AuxRow:Integer;
|
|
|
|
|
|
ADescuento: Variant;}
|
|
|
|
|
|
|
|
|
|
|
|
begin
|
|
|
|
|
|
{
|
|
|
|
|
|
ADescuento := (Controller as IDetallesContratoClienteController).PedirDescuento;
|
|
|
|
|
|
|
|
|
|
|
|
ShowHourglassCursor;
|
|
|
|
|
|
_FocusedView.BeginUpdate;
|
|
|
|
|
|
try
|
|
|
|
|
|
|
|
|
|
|
|
if Assigned(Controller) and Assigned(FContrato.Detalles) then
|
|
|
|
|
|
begin
|
|
|
|
|
|
AuxTop := cxGridView.Controller.TopRowIndex;
|
|
|
|
|
|
AuxRow := cxGridView.DataController.FocusedRowIndex;
|
|
|
|
|
|
|
|
|
|
|
|
(Controller as IDetallesContratoClienteController).AsignarDescuento(FContrato.Detalles, darListaSeleccionados, ADescuento);
|
|
|
|
|
|
|
|
|
|
|
|
_FocusedView.DataController.SelectRows(AuxRow,AuxRow);
|
|
|
|
|
|
_FocusedView.Controller.TopRowIndex := AuxTop;
|
|
|
|
|
|
end
|
|
|
|
|
|
finally
|
|
|
|
|
|
_FocusedView.EndUpdate;
|
|
|
|
|
|
HideHourglassCursor;
|
|
|
|
|
|
end;
|
|
|
|
|
|
}
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesContratoCliente.actAsignarDescuentoUpdate(Sender: TObject);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
|
|
|
|
|
|
if not DADataSource.DataTable.IsEmpty then
|
|
|
|
|
|
(Sender as TAction).Enabled := not (DADataSource.DataTable.State in dsEditModes)
|
|
|
|
|
|
and (_FocusedView.DataController.GetSelectedCount > 0)
|
|
|
|
|
|
and (FContrato.Detalles.TIPO_DETALLE = TIPO_DETALLE_CONCEPTO)
|
|
|
|
|
|
else
|
|
|
|
|
|
(Sender as TAction).Enabled := False;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesContratoCliente.actCapituloArmarioFExecute(Sender: TObject);
|
|
|
|
|
|
begin
|
|
|
|
|
|
AnadirCapitulo(TIPO_CAPITULO_AF, 'FRENTE DE ARMARIO N<> ');
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesContratoCliente.actCapituloArmarioIExecute(Sender: TObject);
|
|
|
|
|
|
begin
|
|
|
|
|
|
AnadirCapitulo(TIPO_CAPITULO_AI, 'INTERIOR DE ARMARIO N<> ');
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesContratoCliente.actCapituloBanoExecute(Sender: TObject);
|
|
|
|
|
|
begin
|
|
|
|
|
|
AnadirCapitulo(TIPO_CAPITULO_B, 'MUEBLE DE BA<42>O N<> ');
|
|
|
|
|
|
AnadirCapitulo(TIPO_CAPITULO_V, 'IMPORTES ', True);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2024-04-19 15:09:52 +00:00
|
|
|
|
procedure TfrViewDetallesContratoCliente.actCapituloClaSemSuspendidoExecute(Sender: TObject);
|
|
|
|
|
|
var
|
|
|
|
|
|
Titulo: String;
|
2022-03-12 10:40:36 +00:00
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
2024-04-19 15:09:52 +00:00
|
|
|
|
Titulo := AppFactuGES.Configuracion.GetSettingAsString(teBD, ('CAP_CLA_SEMI_SUSPENDIDO_TITULO_' + UpperCase(Contrato.IDIOMA_ISO)));
|
|
|
|
|
|
AnadirCapitulo(TIPO_CAPITULO_V,
|
|
|
|
|
|
Titulo,
|
|
|
|
|
|
true,
|
|
|
|
|
|
'CAP_CLA_SEMI_SUSPENDIDO_' + UpperCase(Contrato.IDIOMA_ISO));
|
2022-03-12 10:40:36 +00:00
|
|
|
|
end;
|
|
|
|
|
|
|
2011-11-14 17:40:41 +00:00
|
|
|
|
procedure TfrViewDetallesContratoCliente.actCapituloCocinaExecute(Sender: TObject);
|
|
|
|
|
|
begin
|
|
|
|
|
|
AnadirCapitulo(TIPO_CAPITULO_C, 'MUEBLES DE COCINA ');
|
|
|
|
|
|
AnadirCapitulo(TIPO_CAPITULO_V, 'IMPORTES ', True);
|
|
|
|
|
|
AnadirCapitulo(TIPO_CAPITULO_V, 'AUMENTO POR ');
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesContratoCliente.actCapituloElectrodomesticosExecute(Sender: TObject);
|
|
|
|
|
|
begin
|
|
|
|
|
|
AnadirCapitulo(TIPO_CAPITULO_E, 'ELECTRODOM<4F>STICOS ');
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2024-04-19 15:09:52 +00:00
|
|
|
|
procedure TfrViewDetallesContratoCliente.actCapituloFreArmAbatibleExecute(Sender: TObject);
|
|
|
|
|
|
var
|
|
|
|
|
|
Titulo: String;
|
2022-03-12 10:40:36 +00:00
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
2024-04-19 15:09:52 +00:00
|
|
|
|
Titulo := AppFactuGES.Configuracion.GetSettingAsString(teBD, ('CAP_FRE_ARM_ABATIBLE_TITULO_' + UpperCase(Contrato.IDIOMA_ISO)));
|
|
|
|
|
|
AnadirCapitulo(TIPO_CAPITULO_V,
|
|
|
|
|
|
Titulo,
|
|
|
|
|
|
true,
|
|
|
|
|
|
'CAP_FRE_ARM_ABATIBLE_' + UpperCase(Contrato.IDIOMA_ISO));
|
2022-03-12 10:40:36 +00:00
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesContratoCliente.actCapituloFreArmCorrederaExecute(
|
|
|
|
|
|
Sender: TObject);
|
2024-04-19 15:09:52 +00:00
|
|
|
|
var
|
|
|
|
|
|
Titulo: String;
|
2022-03-12 10:40:36 +00:00
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
2024-04-19 15:09:52 +00:00
|
|
|
|
Titulo := AppFactuGES.Configuracion.GetSettingAsString(teBD, ('CAP_FRE_ARM_CORREDERA_TITULO_' + UpperCase(Contrato.IDIOMA_ISO)));
|
|
|
|
|
|
AnadirCapitulo(TIPO_CAPITULO_V,
|
|
|
|
|
|
Titulo,
|
|
|
|
|
|
true,
|
|
|
|
|
|
'CAP_FRE_ARM_CORREDERA_' + UpperCase(Contrato.IDIOMA_ISO));
|
2022-03-12 10:40:36 +00:00
|
|
|
|
end;
|
|
|
|
|
|
|
2011-11-14 17:40:41 +00:00
|
|
|
|
procedure TfrViewDetallesContratoCliente.actCapituloImportesExecute(Sender: TObject);
|
|
|
|
|
|
begin
|
|
|
|
|
|
AnadirCapitulo(TIPO_CAPITULO_V, 'IMPORTES ');
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2024-04-19 15:09:52 +00:00
|
|
|
|
procedure TfrViewDetallesContratoCliente.actCapituloIntArmForradoExecute(Sender: TObject);
|
|
|
|
|
|
var
|
|
|
|
|
|
Titulo: String;
|
2022-03-12 10:40:36 +00:00
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
2024-04-19 15:09:52 +00:00
|
|
|
|
Titulo := AppFactuGES.Configuracion.GetSettingAsString(teBD, ('CAP_INT_ARM_FORRADO_TITULO_' + UpperCase(Contrato.IDIOMA_ISO)));
|
|
|
|
|
|
AnadirCapitulo(TIPO_CAPITULO_V,
|
|
|
|
|
|
Titulo,
|
|
|
|
|
|
true,
|
|
|
|
|
|
'CAP_INT_ARM_FORRADO_' + UpperCase(Contrato.IDIOMA_ISO));
|
2022-03-12 10:40:36 +00:00
|
|
|
|
end;
|
|
|
|
|
|
|
2024-04-19 15:09:52 +00:00
|
|
|
|
procedure TfrViewDetallesContratoCliente.actCapituloIntEstCristalExecute(Sender: TObject);
|
|
|
|
|
|
var
|
|
|
|
|
|
Titulo: String;
|
2022-03-12 10:40:36 +00:00
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
2024-04-19 15:09:52 +00:00
|
|
|
|
Titulo := AppFactuGES.Configuracion.GetSettingAsString(teBD, ('CAP_INT_EST_CRISTAL_TITULO_' + UpperCase(Contrato.IDIOMA_ISO)));
|
|
|
|
|
|
AnadirCapitulo(TIPO_CAPITULO_V,
|
|
|
|
|
|
Titulo,
|
|
|
|
|
|
true,
|
|
|
|
|
|
'CAP_INT_EST_CRISTAL_' + UpperCase(Contrato.IDIOMA_ISO));
|
2022-03-12 10:40:36 +00:00
|
|
|
|
end;
|
|
|
|
|
|
|
2024-04-19 15:09:52 +00:00
|
|
|
|
procedure TfrViewDetallesContratoCliente.actCapituloSepAmbientesExecute(Sender: TObject);
|
|
|
|
|
|
var
|
|
|
|
|
|
Titulo: String;
|
2022-10-21 09:41:20 +00:00
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
2024-04-19 15:09:52 +00:00
|
|
|
|
Titulo := AppFactuGES.Configuracion.GetSettingAsString(teBD, ('CAP_SEP_AMBIENTES_TITULO_' + UpperCase(Contrato.IDIOMA_ISO)));
|
|
|
|
|
|
AnadirCapitulo(TIPO_CAPITULO_V,
|
|
|
|
|
|
Titulo,
|
|
|
|
|
|
true,
|
|
|
|
|
|
'CAP_SEP_AMBIENTES_' + UpperCase(Contrato.IDIOMA_ISO));
|
2022-10-21 09:41:20 +00:00
|
|
|
|
end;
|
|
|
|
|
|
|
2024-04-19 15:09:52 +00:00
|
|
|
|
procedure TfrViewDetallesContratoCliente.actCapituloServInstalacionExecute(Sender: TObject);
|
|
|
|
|
|
var
|
|
|
|
|
|
Titulo: String;
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
Titulo := AppFactuGES.Configuracion.GetSettingAsString(teBD, ('CAP_INSTALACION_TITULO_' + UpperCase(Contrato.IDIOMA_ISO)));
|
|
|
|
|
|
AnadirCapitulo(TIPO_CAPITULO_V,
|
|
|
|
|
|
Titulo,
|
|
|
|
|
|
true,
|
|
|
|
|
|
'CAP_INSTALACION_' + UpperCase(Contrato.IDIOMA_ISO));
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesContratoCliente.actCapituloServSuministroExecute(Sender: TObject);
|
|
|
|
|
|
var
|
|
|
|
|
|
Titulo: String;
|
2022-10-21 09:41:20 +00:00
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
2024-04-19 15:09:52 +00:00
|
|
|
|
Titulo := AppFactuGES.Configuracion.GetSettingAsString(teBD, ('CAP_SUMINISTRO_TITULO_' + UpperCase(Contrato.IDIOMA_ISO)));
|
|
|
|
|
|
AnadirCapitulo(TIPO_CAPITULO_V,
|
|
|
|
|
|
Titulo,
|
|
|
|
|
|
true,
|
|
|
|
|
|
'CAP_SUMINISTRO_' + UpperCase(Contrato.IDIOMA_ISO));
|
2022-10-21 09:41:20 +00:00
|
|
|
|
end;
|
|
|
|
|
|
|
2011-11-14 17:40:41 +00:00
|
|
|
|
procedure TfrViewDetallesContratoCliente.actCapituloVariosExecute(Sender: TObject);
|
|
|
|
|
|
begin
|
2016-09-05 09:30:43 +00:00
|
|
|
|
AnadirCapitulo(TIPO_CAPITULO_V, 'VARIOS ', true);
|
2011-11-14 17:40:41 +00:00
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TfrViewDetallesContratoCliente.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := (Controller as IDetallesContratoClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Contrato.Cliente.ID);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesContratoCliente.AnadirArticulosInterno;
|
|
|
|
|
|
begin
|
|
|
|
|
|
(Controller as IDetallesContratoClienteController).AnadirArticulos(Detalles, Contrato.Cliente);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2022-03-12 10:40:36 +00:00
|
|
|
|
procedure TfrViewDetallesContratoCliente.AnadirCapitulo(const Tipo: String;const Descripcion: String; const Descuento:Boolean = false; const ConstanteConfiguracion: String = '');
|
2011-11-14 17:40:41 +00:00
|
|
|
|
var
|
|
|
|
|
|
bEsMultiSelect : Boolean;
|
|
|
|
|
|
begin
|
|
|
|
|
|
|
|
|
|
|
|
// Debo quitar el multiselect porque provoca que se quede seleccionado
|
|
|
|
|
|
// el registro actual y no el nuevo registro que voy a a<>adir
|
|
|
|
|
|
bEsMultiSelect := _FocusedView.OptionsSelection.MultiSelect;
|
|
|
|
|
|
if bEsMultiSelect then
|
|
|
|
|
|
_FocusedView.OptionsSelection.MultiSelect := False;
|
|
|
|
|
|
|
|
|
|
|
|
ShowHourglassCursor;
|
|
|
|
|
|
_FocusedView.BeginUpdate;
|
|
|
|
|
|
try
|
|
|
|
|
|
if _FocusedView.Controller.EditingController.IsEditing then
|
|
|
|
|
|
_FocusedView.Controller.EditingController.Edit.PostEditValue;
|
|
|
|
|
|
|
|
|
|
|
|
if Assigned(Controller) and Assigned(Detalles) then
|
2022-03-12 10:40:36 +00:00
|
|
|
|
(Controller as IDetallesContratoClienteController).AnadirCapitulo(Tipo, Descripcion, Descuento, Detalles, ConstanteConfiguracion)
|
2011-11-14 17:40:41 +00:00
|
|
|
|
finally
|
|
|
|
|
|
_FocusedView.EndUpdate;
|
|
|
|
|
|
HideHourglassCursor;
|
|
|
|
|
|
|
|
|
|
|
|
// Dejo la propiedad MultiSelect como estaba
|
|
|
|
|
|
if bEsMultiSelect then
|
|
|
|
|
|
_FocusedView.OptionsSelection.MultiSelect := bEsMultiSelect;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesContratoCliente.CustomViewDestroy(Sender: TObject);
|
|
|
|
|
|
begin
|
|
|
|
|
|
cxGridViewVISIBLE.Properties.OnEditValueChanged := Nil;
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesContratoCliente.CustomViewShow(Sender: TObject);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
if not Assigned(FPropiedades) then
|
|
|
|
|
|
begin
|
|
|
|
|
|
FPropiedades := (Controller as IDetallesContratoClienteController).DarPropiedades;
|
|
|
|
|
|
FPropiedades.DataTable.Active := True;
|
|
|
|
|
|
DAPropiedades.DataTable := FPropiedades.DataTable;
|
|
|
|
|
|
DAValores.DataTable := FPropiedades.Valores.DataTable;
|
|
|
|
|
|
cxGridViewVISIBLE.Properties.OnEditValueChanged := OnVISIBLEPropertiesEditValueChanged;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesContratoCliente.cxGridViewDESCRIPCIONGetPropertiesForEdit(
|
|
|
|
|
|
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
|
|
|
|
|
var AProperties: TcxCustomEditProperties);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
|
2013-04-25 17:15:39 +00:00
|
|
|
|
//Se desactiva la asociaci<63>n que habia de propiedades = familias, no saldr<64> combo directamente se escribe o rellena al elegir un articulo
|
2011-11-14 17:40:41 +00:00
|
|
|
|
//OJO sin esto no se refresca el filtro en tabla detalle "VALORES".
|
2013-04-25 17:15:39 +00:00
|
|
|
|
// DAPropiedades.DataTable.Locate(fld_PropiedadesDESCRIPCION, cxGridViewPROPIEDAD.DataBinding.Field.AsVariant,[]);
|
2011-11-14 17:40:41 +00:00
|
|
|
|
|
2013-04-25 17:15:39 +00:00
|
|
|
|
// if (ARecord.DisplayTexts[cxGridViewTIPO.Index] = TIPO_DETALLE_CONCEPTO)
|
|
|
|
|
|
// and (ARecord.DisplayTexts[cxGridViewPROPIEDAD.Index] <> '') then
|
|
|
|
|
|
// AProperties := cxLookupComboBox1.Properties
|
|
|
|
|
|
// else
|
2011-11-14 17:40:41 +00:00
|
|
|
|
AProperties := cxRichEdit1.Properties;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2012-07-11 15:39:13 +00:00
|
|
|
|
procedure TfrViewDetallesContratoCliente.cxGridViewPROPIEDADGetPropertiesForEdit(
|
|
|
|
|
|
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
|
|
|
|
|
var AProperties: TcxCustomEditProperties);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
|
2013-04-25 17:15:39 +00:00
|
|
|
|
//Se desactiva la asociaci<63>n que habia de propiedades = familias, no saldr<64> combo directamente se escribe o rellena al elegir un articulo
|
|
|
|
|
|
// if (ARecord.DisplayTexts[cxGridViewTIPO.Index] = TIPO_DETALLE_CONCEPTO)
|
|
|
|
|
|
// then
|
|
|
|
|
|
// AProperties := cxLookupComboBox2.Properties
|
|
|
|
|
|
// else
|
2012-07-11 15:39:13 +00:00
|
|
|
|
AProperties := cxRichEdit1.Properties;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2011-11-14 17:40:41 +00:00
|
|
|
|
function TfrViewDetallesContratoCliente.EsTipoEditable(AItem: TcxCustomGridTableItem): Boolean;
|
|
|
|
|
|
var
|
|
|
|
|
|
IndiceCol : Integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := True;
|
|
|
|
|
|
|
|
|
|
|
|
if (AItem.Index in [cxGridViewDESCUENTO.Index]) then
|
|
|
|
|
|
begin
|
2013-04-25 17:15:39 +00:00
|
|
|
|
//Esto es para que solo sea editable la columna dto en las lineas de tipo descuento (para hacer descuento por capitulo),
|
2013-09-25 17:13:02 +00:00
|
|
|
|
//adem<65>s descuentos a nivel de lineas de detalle
|
|
|
|
|
|
IndiceCol := cxGridView.GetColumnByFieldName(CAMPO_TIPO).Index;
|
|
|
|
|
|
if (AItem.GridView.Items[IndiceCol].EditValue <> TIPO_DETALLE_DESCUENTO)
|
|
|
|
|
|
and (AItem.GridView.Items[IndiceCol].EditValue <> TIPO_DETALLE_CONCEPTO) then
|
|
|
|
|
|
Result := False
|
2011-11-14 17:40:41 +00:00
|
|
|
|
end
|
2012-07-11 15:39:13 +00:00
|
|
|
|
else if (AItem.Index in [cxGridViewPROPIEDAD.Index, cxGridViewTIPO_ARTICULO.Index]) then
|
2011-11-14 17:40:41 +00:00
|
|
|
|
begin
|
|
|
|
|
|
IndiceCol := cxGridView.GetColumnByFieldName(CAMPO_TIPO).Index;
|
|
|
|
|
|
if ((AItem.GridView.Items[IndiceCol].EditValue = TIPO_DETALLE_SALTO) or
|
|
|
|
|
|
(AItem.GridView.Items[IndiceCol].EditValue = TIPO_DETALLE_SUBTOTAL) or
|
|
|
|
|
|
(AItem.GridView.Items[IndiceCol].EditValue = TIPO_DETALLE_DESCUENTO) or
|
2024-02-05 10:15:29 +00:00
|
|
|
|
(AItem.GridView.Items[IndiceCol].EditValue = TIPO_DETALLE_TITULO) or
|
|
|
|
|
|
(AItem.GridView.Items[IndiceCol].EditValue = TIPO_DETALLE_TITULO_OPCIONAL)) then
|
2011-11-14 17:40:41 +00:00
|
|
|
|
Result := False
|
|
|
|
|
|
else
|
|
|
|
|
|
begin
|
2024-02-05 10:15:29 +00:00
|
|
|
|
//Se modifica para que solo se pueda meter datos si no es un articulo del cat<61>logo la lina a modificar
|
|
|
|
|
|
{IndiceCol := cxGridView.GetColumnByFieldName(fld_PresupuestosCliente_DetallesTIPO_ARTICULO).Index;
|
|
|
|
|
|
if ((AItem.GridView.Items[IndiceCol].EditValue <> TIPO_CAPITULO_AF) and
|
|
|
|
|
|
(AItem.GridView.Items[IndiceCol].EditValue <> TIPO_CAPITULO_AI) and
|
|
|
|
|
|
(AItem.GridView.Items[IndiceCol].EditValue <> TIPO_CAPITULO_C) and
|
|
|
|
|
|
(AItem.GridView.Items[IndiceCol].EditValue <> TIPO_CAPITULO_O) and
|
|
|
|
|
|
(AItem.GridView.Items[IndiceCol].EditValue <> TIPO_CAPITULO_V) and
|
|
|
|
|
|
(AItem.GridView.Items[IndiceCol].EditValue <> TIPO_CAPITULO_E) and
|
|
|
|
|
|
(AItem.GridView.Items[IndiceCol].EditValue <> TIPO_CAPITULO_B)) then
|
|
|
|
|
|
Result := False
|
|
|
|
|
|
}
|
|
|
|
|
|
IndiceCol := cxGridView.GetColumnByFieldName(fld_ContratosCliente_DetallesID_ARTICULO).Index;
|
|
|
|
|
|
if not VarIsNull(AItem.GridView.Items[IndiceCol].EditValue)
|
|
|
|
|
|
and (AItem.GridView.Items[IndiceCol].EditValue > 0) then
|
|
|
|
|
|
Result := False;
|
2011-11-14 17:40:41 +00:00
|
|
|
|
end;
|
|
|
|
|
|
end
|
2024-02-05 10:15:29 +00:00
|
|
|
|
else if (AItem.Index in [cxGridViewDESCRIPCION.Index, cxGridViewTIPO_ARTICULO.Index]) then
|
|
|
|
|
|
begin
|
|
|
|
|
|
IndiceCol := cxGridView.GetColumnByFieldName(CAMPO_TIPO).Index;
|
|
|
|
|
|
if (AItem.GridView.Items[IndiceCol].EditValue = TIPO_DETALLE_CONCEPTO) then
|
|
|
|
|
|
begin
|
|
|
|
|
|
IndiceCol := cxGridView.GetColumnByFieldName(fld_ContratosCliente_DetallesID_ARTICULO).Index;
|
|
|
|
|
|
if not VarIsNull(AItem.GridView.Items[IndiceCol].EditValue)
|
|
|
|
|
|
and (AItem.GridView.Items[IndiceCol].EditValue > 0) then
|
|
|
|
|
|
Result := False;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end
|
|
|
|
|
|
|
2011-11-14 17:40:41 +00:00
|
|
|
|
else
|
|
|
|
|
|
Result := inherited EsTipoEditable(AItem);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TfrViewDetallesContratoCliente.GetContrato: IBizContratoCliente;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := FContrato;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesContratoCliente.OnVISIBLEPropertiesEditValueChanged(Sender: TObject);
|
|
|
|
|
|
var
|
|
|
|
|
|
Orden: Integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
Orden := 1;
|
|
|
|
|
|
if (cxGridView.DataController.GetItemByFieldName(CAMPO_TIPO).EditValue = TIPO_DETALLE_TITULO)
|
|
|
|
|
|
or (cxGridView.DataController.GetItemByFieldName(CAMPO_TIPO).EditValue = TIPO_DETALLE_TITULO_OPCIONAL)
|
|
|
|
|
|
or (cxGridView.DataController.GetItemByFieldName(CAMPO_TIPO).EditValue = TIPO_DETALLE_SUBTOTAL) then
|
|
|
|
|
|
begin
|
|
|
|
|
|
cxGridView.BeginUpdate;
|
|
|
|
|
|
|
|
|
|
|
|
if (cxGridView.DataController.GetItemByFieldName(CAMPO_TIPO).EditValue = TIPO_DETALLE_SUBTOTAL) then
|
|
|
|
|
|
Orden := 0;
|
|
|
|
|
|
|
|
|
|
|
|
if Assigned(Controller) and Assigned(Detalles) then
|
|
|
|
|
|
(Controller as IDetallesContratoClienteController).SetVisible(Detalles, cxGridView.DataController.GetItemByFieldName(CAMPO_VISIBLE).EditValue, Orden);
|
|
|
|
|
|
|
|
|
|
|
|
cxGridView.EndUpdate;
|
|
|
|
|
|
end;
|
|
|
|
|
|
(Controller as IDetallesContratoClienteController).ActualizarTotales(Detalles);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesContratoCliente.RellenarArticulosInterno;
|
|
|
|
|
|
begin
|
|
|
|
|
|
(Controller as IDetallesContratoClienteController).AnadirArticulos(Detalles, Contrato.Cliente, False);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesContratoCliente.SetContrato(const Value: IBizContratoCliente);
|
|
|
|
|
|
begin
|
|
|
|
|
|
FContrato := Value;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
end.
|