AlonsoYSal_FactuGES2/Source/GUIBase/uViewDetallesDTO.pas
2019-11-18 10:36:42 +00:00

76 lines
2.9 KiB
ObjectPascal
Raw Permalink Blame History

unit uViewDetallesDTO;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewDetallesBase, cxStyles, cxCustomData, cxGraphics, cxFilter,
cxData, cxDataStorage, cxEdit, DB, cxDBData, cxImageComboBox, cxRichEdit,
cxMaskEdit, cxCurrencyEdit, cxCheckBox, ImgList, PngImageList, uDADataTable,
StdActns, ExtActns, ActnList, TB2Item, TBX, TB2Dock, TB2Toolbar, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, ComCtrls, StdCtrls, JvExStdCtrls,
JvCombobox, JvColorCombo, ToolWin, uDAInterfaces;
type
IViewDetallesDTO = interface(IViewDetallesBase)
['{0D221FFB-9F43-48FC-9AE7-0AD0F0791AD1}']
end;
TfrViewDetallesDTO = class(TfrViewDetallesBase, IViewDetallesDTO)
cxGridViewDESCUENTO: TcxGridDBColumn;
cxGridViewIMPORTEPORTE: TcxGridDBColumn;
cxGridViewIMPORTENETO: TcxGridDBColumn;
procedure cxGridViewIMPORTENETOGetDisplayText(Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
var AText: string);
procedure cxGridViewIMPORTENETOPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
protected
function HayQueRecalcular(AItem: TcxCustomGridTableItem): Boolean; override;
end;
implementation
{$R *.dfm}
{ TfrViewDetallesDTO }
procedure TfrViewDetallesDTO.cxGridViewIMPORTENETOGetDisplayText(Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
var AText: string);
var
ImporteNeto : Double;
begin
//Se encarga de mostrar el campo calculado de importe neto
ImporteNeto := -1;
if not VarIsNull(ARecord.Values[cxGridViewIMPORTEUNIDAD.Index]) then
if not VarIsNull(ARecord.Values[cxGridViewDESCUENTO.Index]) then
ImporteNeto := ARecord.Values[cxGridViewIMPORTEUNIDAD.Index] - ((ARecord.Values[cxGridViewIMPORTEUNIDAD.Index] * ARecord.Values[cxGridViewDESCUENTO.Index])/100)
else
ImporteNeto := ARecord.Values[cxGridViewIMPORTEUNIDAD.Index];
if (ImporteNeto <> -1) then
begin
AText := FormatCurr(',0.00 <20>;-,0.00 <20>', FloatToCurr(ImporteNeto))
end;
end;
procedure TfrViewDetallesDTO.cxGridViewIMPORTENETOPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
begin
inherited;
if not VarIsNull(DisplayValue) then
begin
cxGridViewDESCUENTO.DataBinding.Field.Value := ((cxGridViewIMPORTEUNIDAD.DataBinding.Field.Value - DisplayValue) * 100) / cxGridViewIMPORTEUNIDAD.DataBinding.Field.Value;
Controller.ActualizarTotales(Detalles);
end;
end;
function TfrViewDetallesDTO.HayQueRecalcular(AItem: TcxCustomGridTableItem): Boolean;
begin
Result := inherited HayQueRecalcular(AItem);
if not Result then
Result := (AItem = cxGridViewDESCUENTO) or (AItem = cxGridViewIMPORTEPORTE);
end;
end.