Tecsitel_FactuGES2/Source/Modulos/Facturas de proveedor/Views/uViewDetallesFacturaProveedor.pas

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.