76 lines
2.9 KiB
ObjectPascal
76 lines
2.9 KiB
ObjectPascal
|
|
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.
|