git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@1082 0c75b7a4-871f-7646-8a2f-f78d34cc349f
165 lines
5.6 KiB
ObjectPascal
165 lines
5.6 KiB
ObjectPascal
unit uViewDetallesFacturaProveedor;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, uViewDetallesBase, 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, StdActns, ExtActns,
|
|
JvExStdCtrls, JvCombobox, JvColorCombo, TB2Item, TBX, TB2Dock, TB2Toolbar,
|
|
uArticulosController, uViewDetallesArticulos, uBizFacturasProveedor,
|
|
uDAInterfaces, cxButtonEdit, cxDropDownEdit, uBizTiposIVA,
|
|
Menus, cxGridCustomPopupMenu, uTiposIVAController,
|
|
cxGridPopupMenu, cxEditRepositoryItems, cxDBLookupComboBox;
|
|
|
|
type
|
|
IViewDetallesFacturaProveedor = interface(IViewDetallesArticulos)
|
|
['{28876F6E-E6EC-4DDA-9023-AE23EB9D6A62}']
|
|
function GetFactura: IBizFacturaProveedor;
|
|
procedure SetFactura(const Value: IBizFacturaProveedor);
|
|
property Factura: IBizFacturaProveedor read GetFactura write SetFactura;
|
|
end;
|
|
|
|
TfrViewDetallesFacturaProveedor = class(TfrViewDetallesArticulos, IViewDetallesFacturaProveedor)
|
|
cxGridViewIVA: TcxGridDBColumn;
|
|
cxGridViewIMPORTE_IVA: TcxGridDBColumn;
|
|
cxGridViewID_TIPO_IVA: TcxGridDBColumn;
|
|
dsTiposIVADetalles: TDADataSource;
|
|
procedure cxGridViewID_TIPO_IVAPropertiesEditValueChanged(Sender: TObject);
|
|
procedure actAnadirExecute(Sender: TObject);
|
|
protected
|
|
FFactura: IBizFacturaProveedor;
|
|
FTiposIVAController : ITiposIVAController;
|
|
FTiposIVA: IBizTipoIVA;
|
|
|
|
function GetFactura: IBizFacturaProveedor;
|
|
procedure SetFactura(const Value: IBizFacturaProveedor);
|
|
|
|
procedure AnadirArticulosInterno; override;
|
|
procedure RellenarArticulosInterno; override;
|
|
function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; override;
|
|
|
|
function HayQueRecalcular(AItem: TcxCustomGridTableItem): Boolean; override;
|
|
public
|
|
property Factura: IBizFacturaProveedor read GetFactura write SetFactura;
|
|
destructor Destroy; override;
|
|
constructor Create(AOwner: TComponent); override;
|
|
end;
|
|
|
|
implementation
|
|
{$R *.dfm}
|
|
|
|
uses
|
|
uDetallesFacturaProveedorController, uFactuGES_App;
|
|
|
|
{ TfrViewDetallesFacturaProveedor }
|
|
|
|
procedure TfrViewDetallesFacturaProveedor.actAnadirExecute(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
|
|
ShowHourglassCursor;
|
|
_FocusedView.BeginUpdate;
|
|
try
|
|
if _FocusedView.Controller.EditingController.IsEditing then
|
|
_FocusedView.Controller.EditingController.Edit.PostEditValue;
|
|
|
|
if not VarIsNull(FFactura.Proveedor.ID_TIPO_IVA) then begin
|
|
cxGridViewID_TIPO_IVA.EditValue := FFactura.Proveedor.ID_TIPO_IVA;
|
|
end
|
|
else
|
|
cxGridViewID_TIPO_IVA.EditValue := AppFactuGES.EmpresaActiva.ID_TIPO_IVA;
|
|
cxGridViewIVA.EditValue := FTiposIVA.IVA;
|
|
finally
|
|
_FocusedView.EndUpdate;
|
|
HideHourglassCursor;
|
|
end;
|
|
|
|
end;
|
|
|
|
function TfrViewDetallesFacturaProveedor.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean;
|
|
begin
|
|
if (Factura.TIPO = CTE_TIPO_ABONO) then
|
|
Result := (Controller as IDetallesFacturaProveedorController).AnadirArticulo(Detalles, pReferencia, tRefProveedorParaCompras, -1, -1)
|
|
else
|
|
Result := (Controller as IDetallesFacturaProveedorController).AnadirArticulo(Detalles, pReferencia, tRefProveedorParaCompras, -1, -1);
|
|
end;
|
|
|
|
procedure TfrViewDetallesFacturaProveedor.AnadirArticulosInterno;
|
|
begin
|
|
if (Factura.TIPO = CTE_TIPO_ABONO) then
|
|
(Controller as IDetallesFacturaProveedorController).AnadirArticulos(Detalles, Factura.Proveedor, true, -1)
|
|
else
|
|
(Controller as IDetallesFacturaProveedorController).AnadirArticulos(Detalles, Factura.Proveedor);
|
|
end;
|
|
|
|
constructor TfrViewDetallesFacturaProveedor.Create(AOwner: TComponent);
|
|
begin
|
|
inherited;
|
|
FTiposIVAController := TTiposIVAController.Create;
|
|
end;
|
|
|
|
procedure TfrViewDetallesFacturaProveedor.cxGridViewID_TIPO_IVAPropertiesEditValueChanged(
|
|
Sender: TObject);
|
|
begin
|
|
inherited;
|
|
|
|
ShowHourglassCursor;
|
|
_FocusedView.BeginUpdate;
|
|
try
|
|
cxGridViewIVA.EditValue := FTiposIVA.IVA;
|
|
Controller.ActualizarTotales(Detalles);
|
|
finally
|
|
_FocusedView.EndUpdate;
|
|
HideHourglassCursor;
|
|
end;
|
|
end;
|
|
|
|
destructor TfrViewDetallesFacturaProveedor.Destroy;
|
|
begin
|
|
FTiposIVA := NIL;
|
|
FTiposIVAController := Nil;
|
|
inherited;
|
|
end;
|
|
|
|
function TfrViewDetallesFacturaProveedor.GetFactura: IBizFacturaProveedor;
|
|
begin
|
|
Result := FFactura;
|
|
end;
|
|
|
|
function TfrViewDetallesFacturaProveedor.HayQueRecalcular(
|
|
AItem: TcxCustomGridTableItem): Boolean;
|
|
begin
|
|
Result := inherited HayQueRecalcular(AItem);
|
|
if not Result then
|
|
Result := (AItem = cxGridViewID_TIPO_IVA);
|
|
end;
|
|
|
|
procedure TfrViewDetallesFacturaProveedor.RellenarArticulosInterno;
|
|
begin
|
|
if (Factura.TIPO = CTE_TIPO_ABONO) then
|
|
(Controller as IDetallesFacturaProveedorController).AnadirArticulos(Detalles, Factura.Proveedor, False, -1)
|
|
else
|
|
(Controller as IDetallesFacturaProveedorController).AnadirArticulos(Detalles, Factura.Proveedor, False);
|
|
end;
|
|
|
|
procedure TfrViewDetallesFacturaProveedor.SetFactura(const Value: IBizFacturaProveedor);
|
|
begin
|
|
FFactura := Value;
|
|
if Assigned(FFactura) then
|
|
begin
|
|
FTiposIVA := FTiposIVAController.BuscarTodos;
|
|
dsTiposIVADetalles.DataTable := FTiposIVA.DataTable;
|
|
FTiposIVA.DataTable.Active := True;
|
|
end
|
|
else begin
|
|
dsTiposIVADetalles.DataTable := NIL;
|
|
end
|
|
end;
|
|
|
|
end.
|