ConstruccionesCNJ_FactuGES/Modulos/Montaje completo/Views/uViewSituacionMontaje.pas
2007-06-21 15:50:59 +00:00

136 lines
4.4 KiB
ObjectPascal

unit uViewSituacionMontaje;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, dxLayoutControl, cxControls, StdCtrls, DB, uDADataTable,
cxContainer, cxEdit, cxLabel, cxDBLabel, cxTextEdit, cxCurrencyEdit, cxDBEdit,
ExtCtrls, cxMaskEdit;
type
TfrViewSituacionMontaje = class(TfrViewBase)
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutControl1Group1: TdxLayoutGroup;
dxLayoutControl1Group2: TdxLayoutGroup;
dsDataTable: TDADataSource;
dxLayoutControl1Item2: TdxLayoutItem;
ImporteContrato2: TcxDBLabel;
ImporteContrato1: TcxDBCurrencyEdit;
dxLayoutControl1Item7: TdxLayoutItem;
Bevel1: TBevel;
dxLayoutControl1Item6: TdxLayoutItem;
Bevel2: TBevel;
dxLayoutControl1Item9: TdxLayoutItem;
ImportePedidos: TcxCurrencyEdit;
dxLayoutControl1Item11: TdxLayoutItem;
ImporteGastos: TcxCurrencyEdit;
dxLayoutControl1Item12: TdxLayoutItem;
ImporteBeneficio: TcxCurrencyEdit;
dxLayoutControl1Item13: TdxLayoutItem;
ImporteCobrado: TcxCurrencyEdit;
dxLayoutControl1Item14: TdxLayoutItem;
ImportePendiente: TcxCurrencyEdit;
dxLayoutControl1Item15: TdxLayoutItem;
dxLayoutControl1Item1: TdxLayoutItem;
PorcentajeBeneficio: TcxLabel;
procedure CustomViewCreate(Sender: TObject);
procedure ImporteContrato1PropertiesEditValueChanged(Sender: TObject);
procedure ImporteBeneficioPropertiesEditValueChanged(Sender: TObject);
procedure ImportePendientePropertiesEditValueChanged(Sender: TObject);
private
FImportePedidos: Double;
FImporteOtrosGastos: Double;
FImporteCobrado: Double;
procedure setImporteCobrado(const Value: Double);
procedure setImporteOtrosGastos(const Value: Double);
procedure setImportePedidos(const Value: Double);
procedure CalcularSituacion;
public
property pImportePedidos: Double read FImportePedidos write setImportePedidos;
property pImporteOtrosGastos: Double read FImporteOtrosGastos write setImporteOtrosGastos;
property pImporteCobrado: Double read FImporteCobrado write setImporteCobrado;
end;
implementation
{$R *.dfm}
{ TfrViewSituacionMontaje }
procedure TfrViewSituacionMontaje.CalcularSituacion;
var
lImporteBeneficio: Double;
lPorcentajeBeneficio: Double;
lImportePendiente: Double;
begin
if VarIsNull(ImporteContrato1.Value) then
exit;
lImporteBeneficio := (ImporteContrato1.Value + (FImportePedidos + FImporteOtrosGastos));
if (ImporteContrato1.Value <> 0) then
lPorcentajeBeneficio := (lImporteBeneficio * 100) / ImporteContrato1.Value;
lImportePendiente := ImporteContrato1.Value - FImporteCobrado;
ImporteBeneficio.Value := lImporteBeneficio;
PorcentajeBeneficio.Caption := FormatFloat('0.00%', lPorcentajeBeneficio);
ImportePendiente.Value := lImportePendiente;
end;
procedure TfrViewSituacionMontaje.CustomViewCreate(Sender: TObject);
begin
inherited;
FImportePedidos := 0;
FImporteOtrosGastos := 0;
FImporteCobrado := 0;
end;
procedure TfrViewSituacionMontaje.ImporteBeneficioPropertiesEditValueChanged(Sender: TObject);
begin
if ImporteBeneficio.Value < 0 then
begin
ImporteBeneficio.Style.Font.Color := clRed;
PorcentajeBeneficio.Style.Font.Color := clRed
end
else
begin
ImporteBeneficio.Style.Font.Color := clWindowText;
PorcentajeBeneficio.Style.Font.Color := clWindowText
end;
end;
procedure TfrViewSituacionMontaje.ImporteContrato1PropertiesEditValueChanged(Sender: TObject);
begin
CalcularSituacion;
end;
procedure TfrViewSituacionMontaje.ImportePendientePropertiesEditValueChanged(Sender: TObject);
begin
if ImportePendiente.Value < 0
then ImportePendiente.Style.Font.Color := clWindowText
else ImportePendiente.Style.Font.Color := clRed;
end;
procedure TfrViewSituacionMontaje.setImporteCobrado(const Value: Double);
begin
FImporteCobrado := Value;
ImporteCobrado.Value := FImporteCobrado;
CalcularSituacion;
end;
procedure TfrViewSituacionMontaje.setImporteOtrosGastos(const Value: Double);
begin
FImporteOtrosGastos := Value;
ImporteGastos.Value := (-1)* FImporteOtrosGastos;
CalcularSituacion;
end;
procedure TfrViewSituacionMontaje.setImportePedidos(const Value: Double);
begin
FImportePedidos := Value;
ImportePedidos.Value := (-1)* FImportePedidos;
CalcularSituacion;
end;
end.