Varela_PuntosVenta/Source/Modulos/Devoluciones/Cliente/uEditorAjustarDevoluciones.pas
david 5f4dba093e - Mejoras en el acceso a BD. Sustitución de vistas básicas por tablas.
- Revisión del proceso de carga.
- Parámetros de consulta en recepción, traslado y devoluciones.

git-svn-id: https://192.168.0.254/svn/Proyectos.Varela_PuntosVenta/trunk@7 1c943782-d109-9647-9548-93b3ac332352
2007-08-08 15:18:45 +00:00

352 lines
11 KiB
ObjectPascal

{*******************************************************}
{ }
{ Administración de puntos de venta }
{ }
{ Copyright (C) 2006 Rodax Software S.L. }
{ }
{*******************************************************}
unit uEditorAjustarDevoluciones;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, JvExControls, JvComponent,
JvgWizardHeader, ExtCtrls, cxStyles, cxCustomData, uBizDevoluciones,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
cxCurrencyEdit, uDADataTable, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView,
cxClasses, cxControls, cxGridCustomView, cxGrid, dxLayoutControl,
cxContainer, cxTextEdit, cxDBEdit, cxMemo, cxMaskEdit, cxDropDownEdit,
cxCheckBox, cxCalendar, cxLabel, cxDBLabel;
type
IEditorAjustarDevoluciones = interface
['{F75441C6-D0D4-42AF-ABB7-FC531222F0DD}']
function GetItems : IBizDevoluciones;
procedure SetItems (const AValue : IBizDevoluciones);
property Items : IBizDevoluciones read GetItems write SetItems;
end;
TfEditorAjustarDevoluciones = class(TForm, IEditorAjustarDevoluciones)
bAceptar: TButton;
bCancelar: TButton;
JvgWizardHeader1: TJvgWizardHeader;
Bevel1: TBevel;
dsDataSource: TDADataSource;
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutControl1Group1: TdxLayoutGroup;
dxLayoutControl1Group2: TdxLayoutGroup;
dxLayoutControl1Group3: TdxLayoutGroup;
dxLayoutControl1Group4: TdxLayoutGroup;
dxLayoutControl1Group5: TdxLayoutGroup;
dxLayoutControl1Item9: TdxLayoutItem;
Bevel2: TBevel;
dxLayoutControl1Group8: TdxLayoutGroup;
dxLayoutControl1Item10: TdxLayoutItem;
edtEnv40: TcxDBMaskEdit;
dxLayoutControl1Group9: TdxLayoutGroup;
dxLayoutControl1Item11: TdxLayoutItem;
edtEnv38: TcxDBMaskEdit;
dxLayoutControl1Item12: TdxLayoutItem;
edtEnv42: TcxDBMaskEdit;
dxLayoutControl1Item13: TdxLayoutItem;
edtEnv44: TcxDBMaskEdit;
dxLayoutControl1Item14: TdxLayoutItem;
edtEnv46: TcxDBMaskEdit;
dxLayoutControl1Item15: TdxLayoutItem;
edtEnv48: TcxDBMaskEdit;
dxLayoutControl1Item16: TdxLayoutItem;
Label1: TLabel;
dxLayoutControl1Item2: TdxLayoutItem;
edtRec38: TcxDBMaskEdit;
dxLayoutControl1Item3: TdxLayoutItem;
edtRec40: TcxDBMaskEdit;
dxLayoutControl1Item4: TdxLayoutItem;
edtRec42: TcxDBMaskEdit;
dxLayoutControl1Item20: TdxLayoutItem;
edtRec44: TcxDBMaskEdit;
dxLayoutControl1Item21: TdxLayoutItem;
edtRec46: TcxDBMaskEdit;
dxLayoutControl1Item22: TdxLayoutItem;
edtRec48: TcxDBMaskEdit;
dxLayoutControl1Item23: TdxLayoutItem;
Label2: TLabel;
dxLayoutControl1Item24: TdxLayoutItem;
edtRecR48: TcxCurrencyEdit;
dxLayoutControl1Item25: TdxLayoutItem;
edtRecR46: TcxCurrencyEdit;
dxLayoutControl1Item26: TdxLayoutItem;
edtRecR44: TcxCurrencyEdit;
dxLayoutControl1Item27: TdxLayoutItem;
edtRecR42: TcxCurrencyEdit;
dxLayoutControl1Item28: TdxLayoutItem;
edtRecR40: TcxCurrencyEdit;
dxLayoutControl1Item29: TdxLayoutItem;
edtRecR38: TcxCurrencyEdit;
dxLayoutControl1Group10: TdxLayoutGroup;
dxLayoutControl1Group11: TdxLayoutGroup;
dxLayoutControl1Group12: TdxLayoutGroup;
dxLayoutControl1Group13: TdxLayoutGroup;
dxLayoutControl1Group14: TdxLayoutGroup;
dxLayoutControl1Group15: TdxLayoutGroup;
dxLayoutControl1Item30: TdxLayoutItem;
Label3: TLabel;
dxLayoutControl1Group16: TdxLayoutGroup;
edtFecha: TcxDBLabel;
dxLayoutControl1Item31: TdxLayoutItem;
edtCentro: TcxDBLabel;
dxLayoutControl1Item17: TdxLayoutItem;
edtProducto: TcxDBLabel;
dxLayoutControl1Item32: TdxLayoutItem;
edtColor: TcxDBLabel;
dxLayoutControl1Item33: TdxLayoutItem;
edtHoja: TcxDBLabel;
dxLayoutControl1Item1: TdxLayoutItem;
cbEstadoHoja: TcxComboBox;
dxLayoutControl1Item5: TdxLayoutItem;
memEstadoHoja: TcxMemo;
dxLayoutControl1Item6: TdxLayoutItem;
cbContabilizarHoja: TcxCheckBox;
dxLayoutControl1Item8: TdxLayoutItem;
dxLayoutControl1Group7: TdxLayoutGroup;
dxLayoutControl1Group6: TdxLayoutGroup;
procedure FormShow(Sender: TObject);
procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView;
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
var ADone: Boolean);
procedure bAceptarClick(Sender: TObject);
private
FItems : IBizDevoluciones;
FHayErrores : Boolean;
FAlbaranModificado : Boolean;
procedure CargarValores;
procedure SalvarValores;
procedure ModificarAlbaran;
protected
function GetItems : IBizDevoluciones;
procedure SetItems (const AValue : IBizDevoluciones);
public
property Items : IBizDevoluciones read GetItems write SetItems;
end;
implementation
uses
uEditorUtils, uDataModuleDevoluciones,
uDAInterfaces;
{$R *.dfm}
function ShowEditorAjustarDevoluciones (ABizObject : TDADataTableRules) : TModalResult;
var
AEditor: TfEditorAjustarDevoluciones;
begin
AEditor := TfEditorAjustarDevoluciones.Create(Application);
try
AEditor.Items := (ABizObject as IBizDevoluciones);
Result := AEditor.ShowModal;
finally
AEditor.Release;
end;
end;
{ TfEditorCambioReferenciaGenerica }
procedure TfEditorAjustarDevoluciones.FormShow(Sender: TObject);
begin
FHayErrores := False;
FItems.DataTable.Open;
cbEstadoHoja.Enabled := Length(FItems.DataTable.FieldByName('NUMHOJA').AsString) > 0;
cbContabilizarHoja.Enabled := cbEstadoHoja.Enabled;
memEstadoHoja.Enabled := cbEstadoHoja.Enabled;
CargarValores;;
end;
function TfEditorAjustarDevoluciones.GetItems: IBizDevoluciones;
begin
Result := FItems;
end;
procedure TfEditorAjustarDevoluciones.SetItems(
const AValue: IBizDevoluciones);
begin
FItems := AValue;
if Assigned(FItems) then
dsDataSource.DataTable := FItems.DataTable;
end;
procedure TfEditorAjustarDevoluciones.cxGridViewCustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
if ((AViewInfo.Item as TcxGridDBBandedColumn).Position.RowIndex = 1) then
begin
ADone := True;
with AViewInfo do begin
ACanvas.FillRect(Bounds);
ACanvas.DrawTexT(Text, TextAreaBounds, 0);
ACanvas.FrameRect(Bounds, BorderColor[bBottom], 1, [bBottom]);
end;
end;
end;
procedure TfEditorAjustarDevoluciones.bAceptarClick(Sender: TObject);
begin
ShowHourglassCursor;
Application.ProcessMessages;
try
SalvarValores;
FItems.DataTable.ApplyUpdates;
ModificarAlbaran;
finally
HideHourglassCursor;
end;
Close;
end;
procedure TfEditorAjustarDevoluciones.CargarValores;
begin
with FItems.DataTable do
begin
if FieldByName('E38').AsInteger <> FieldByName('ER38').AsInteger then
edtRecR38.Value := FieldByName('ER38').AsInteger
else
edtRecR38.Value := FieldByName('E38').AsInteger;
if FieldByName('E40').AsInteger <> FieldByName('ER40').AsInteger then
edtRecR40.Value := FieldByName('ER40').AsInteger
else
edtRecR40.Value := FieldByName('E40').AsInteger;
if FieldByName('E42').AsInteger <> FieldByName('ER42').AsInteger then
edtRecR42.Value := FieldByName('ER42').AsInteger
else
edtRecR42.Value := FieldByName('E42').AsInteger;
if FieldByName('E44').AsInteger <> FieldByName('ER44').AsInteger then
edtRecR44.Value := FieldByName('ER44').AsInteger
else
edtRecR44.Value := FieldByName('E44').AsInteger;
if FieldByName('E46').AsInteger <> FieldByName('ER46').AsInteger then
edtRecR46.Value := FieldByName('ER46').AsInteger
else
edtRecR46.Value := FieldByName('E46').AsInteger;
if FieldByName('E48').AsInteger <> FieldByName('ER48').AsInteger then
edtRecR48.Value := FieldByName('ER48').AsInteger
else
edtRecR48.Value := FieldByName('E48').AsInteger;
if Length(FieldByName('ESTADO_HOJA').AsString) = 0 then
cbEstadoHoja.Text := cbEstadoHoja.Properties.Items[0];
if Length(FieldByName('ESTADO_HOJA').AsString) = 0 then
cbEstadoHoja.Text := cbEstadoHoja.Properties.Items[0]
else
cbEstadoHoja.Text := FieldByName('ESTADO_HOJA').AsString;
cbContabilizarHoja.Checked := (FieldByName('CONTABILIZAR_HOJA').AsString = 'S');
memEstadoHoja.Lines.Clear;
if Length(FieldByName('OBSERVACIONES_HOJA').AsString) > 0 then
memEstadoHoja.Lines.Add(FieldByName('OBSERVACIONES_HOJA').AsString)
end;
end;
procedure TfEditorAjustarDevoluciones.SalvarValores;
var
aux : String;
begin
FAlbaranModificado := False;
with FItems.DataTable do
begin
Edit;
FieldByName('ER38').AsFloat := edtRecR38.Value;
FieldByName('ER40').AsFloat := edtRecR40.Value;
FieldByName('ER42').AsFloat := edtRecR42.Value;
FieldByName('ER44').AsFloat := edtRecR44.Value;
FieldByName('ER46').AsFloat := edtRecR46.Value;
FieldByName('ER48').AsFloat := edtRecR48.Value;
if cbEstadoHoja.Text = cbEstadoHoja.Properties.Items[0] then
aux := ''
else
aux := cbEstadoHoja.Text;
if FieldByName('ESTADO_HOJA').AsString <> aux then
FieldByName('ESTADO_HOJA').AsString := aux;
if cbContabilizarHoja.Checked then
aux := 'S'
else
aux := 'N';
if FieldByName('CONTABILIZAR_HOJA').AsString <> aux then
FieldByName('CONTABILIZAR_HOJA').AsString := aux;
FieldByName('OBSERVACIONES_HOJA').AsString := memEstadoHoja.Lines.Text;
Post;
end;
end;
procedure TfEditorAjustarDevoluciones.ModificarAlbaran;
var
bm : TBookMark ;
AHoja : String;
AEstado : String;
AContabilizar : String;
begin
{ Si se ha cambiado el albarán, hay
que cambiarlo en el resto de filas en las que aparezca }
AHoja := FItems.DataTable.FieldByName('NUMHOJA').AsString;
AEstado := FItems.DataTable.FieldByName('ESTADO_HOJA').AsString;
AContabilizar := FItems.DataTable.FieldByName('CONTABILIZAR_HOJA').AsString;
bm := FItems.DataTable.GetBookMark;
FItems.DataTable.DisableControls;
FItems.DataTable.DisableEventHandlers;
FItems.DataTable.LogChanges := False;
try
FItems.DataTable.Filter := 'NUMHOJA = ''' + AHoja + '''';
FItems.DataTable.Filtered := True;
FItems.DataTable.First;
repeat
FItems.Edit;
FItems.DataTable.FieldByName('ESTADO_HOJA').AsString := AEstado;
FItems.DataTable.FieldByName('CONTABILIZAR_HOJA').AsString := AContabilizar;
FItems.Post;
FItems.DataTable.Next
until FItems.DataTable.EOF;
try
FItems.DataTable.GotoBookMark(bm);
except
// No hacer nada
end;
finally
FItems.DataTable.Filter := '';
FItems.DataTable.Filtered := False;
FItems.DataTable.FreeBookMark(BM);
FItems.DataTable.LogChanges := True;
FItems.DataTable.EnableEventHandlers;
FItems.DataTable.EnableControls;
end;
end;
initialization
RegisterEditor(IBizDevoluciones, ShowEditorAjustarDevoluciones, etItem);
finalization
end.