git-svn-id: https://192.168.0.254/svn/Proyectos.AlonsoYSal_FactuGES/trunk@15 9a1d36f3-7752-2d40-8ccb-50eb49674c68
253 lines
8.8 KiB
ObjectPascal
253 lines
8.8 KiB
ObjectPascal
unit uEditorComisiones;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||
Dialogs, uEditorItem, JvAppStorage, JvAppRegistryStorage, JvComponent,
|
||
JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls,
|
||
TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls,
|
||
JvNavigationPane, uEditorBase, uCustomView, uViewBase, StdCtrls,
|
||
uDADataTable, dxLayoutControl, cxContainer, cxEdit, cxTextEdit,
|
||
cxMaskEdit, cxDropDownEdit, cxCalendar, cxControls, dxLayoutLookAndFeels,
|
||
cxStyles, DB, cxGrid, cxCustomData, cxGraphics, cxFilter, cxData,
|
||
cxDataStorage, cxDBData, cxGridLevel, cxGridCustomTableView,
|
||
cxGridTableView, cxGridDBTableView, cxClasses, cxGridCustomView,
|
||
cxCurrencyEdit, cxSpinEdit, uBizComisiones, cxCheckBox, cxSplitter,
|
||
JvComponentBase, JvExExtCtrls, JvSplitter, JvSplit, dxPSGlbl, dxPSUtl,
|
||
dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider,
|
||
dxPSFillPatterns, dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk,
|
||
dxPSContainerLnk, dxPSdxLCLnk, uEditorGrid, Menus, TB2ExtItems,
|
||
TBXExtItems;
|
||
|
||
type
|
||
IEditorComisiones = interface(IEditorGrid)
|
||
['{C3894FB2-9030-466C-B2D9-5CF3CF5EA1B8}']
|
||
end;
|
||
|
||
TfEditorComisiones = class(TfEditorGrid, IEditorComisiones)
|
||
Button1: TButton;
|
||
dxLayoutControl1Group_Root: TdxLayoutGroup;
|
||
dxLayoutControl1: TdxLayoutControl;
|
||
edtFechaIni: TcxDateEdit;
|
||
edtFechaFin: TcxDateEdit;
|
||
dxLayoutControl1Item2: TdxLayoutItem;
|
||
dxLayoutControl1Group1: TdxLayoutGroup;
|
||
dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
|
||
dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel;
|
||
DADataSource: TDADataSource;
|
||
dxLayoutControl1Item4: TdxLayoutItem;
|
||
cxGrid: TcxGrid;
|
||
cxGridView: TcxGridDBTableView;
|
||
cxGridViewVENDEDOR: TcxGridDBColumn;
|
||
cxGridViewPORCENTAJE: TcxGridDBColumn;
|
||
cxGridViewCOMISION: TcxGridDBColumn;
|
||
cxGridLevel: TcxGridLevel;
|
||
dxLayoutControl1Item1: TdxLayoutItem;
|
||
dxLayoutControl1Group2: TdxLayoutGroup;
|
||
dxLayoutControl1Item5: TdxLayoutItem;
|
||
edtImporteCobros: TcxCurrencyEdit;
|
||
dxLayoutControl1Item6: TdxLayoutItem;
|
||
dxLayoutControl1Group3: TdxLayoutGroup;
|
||
cxGrid1: TcxGrid;
|
||
cxGridDBTableView1: TcxGridDBTableView;
|
||
cxGridLevel1: TcxGridLevel;
|
||
dxLayoutControl1Item3: TdxLayoutItem;
|
||
cxGridDBTableView1RecID: TcxGridDBColumn;
|
||
cxGridDBTableView1SELECCION: TcxGridDBColumn;
|
||
cxGridDBTableView1CODIGOEMPRESA: TcxGridDBColumn;
|
||
cxGridDBTableView1CODIGO: TcxGridDBColumn;
|
||
cxGridDBTableView1CODIGOCONTACTO: TcxGridDBColumn;
|
||
cxGridDBTableView1NOMBRE: TcxGridDBColumn;
|
||
cxGridDBTableView1FECHAPAGO: TcxGridDBColumn;
|
||
cxGridDBTableView1IMPORTE: TcxGridDBColumn;
|
||
cxStyleRepository1: TcxStyleRepository;
|
||
cxStyleEven: TcxStyle;
|
||
cxStyleOdd: TcxStyle;
|
||
cxStyleSelection: TcxStyle;
|
||
DADataSource2: TDADataSource;
|
||
cxSplitter1: TcxSplitter;
|
||
cxGridDBTableView1DESCRIPCION: TcxGridDBColumn;
|
||
dxComponentPrinter: TdxComponentPrinter;
|
||
dxComponentPrinterLink1: TdxGridReportLink;
|
||
dxComponentPrinterLink3: TdxGridReportLink;
|
||
dxComponentPrinterLink2: TdxCompositionReportLink;
|
||
cxStyle1: TcxStyle;
|
||
cxFamilia: TcxComboBox;
|
||
dxLayoutControl1Item7: TdxLayoutItem;
|
||
dxLayoutControl1Group4: TdxLayoutGroup;
|
||
procedure Button1Click(Sender: TObject);
|
||
procedure FormShow(Sender: TObject);
|
||
procedure edtFechaIniPropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
procedure CustomEditorGetModified(Sender: TObject;
|
||
var Modified: Boolean);
|
||
procedure cxGridDBTableView1CustomDrawCell(
|
||
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
|
||
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
|
||
procedure actPrevisualizarExecute(Sender: TObject);
|
||
procedure tbxEditFiltroChange(Sender: TObject; const Text: String);
|
||
procedure actQuitarFiltroExecute(Sender: TObject);
|
||
procedure actAnchoAutoExecute(Sender: TObject);
|
||
procedure actPrevisualizarUpdate(Sender: TObject);
|
||
private
|
||
FComisiones : TDADataTable;
|
||
FCobrosComision : IBizCobrosComision;
|
||
procedure OnTotalChanged(Sender : TObject);
|
||
end;
|
||
|
||
var
|
||
fEditorComisiones: TfEditorComisiones;
|
||
|
||
implementation
|
||
|
||
uses uDataModuleComisiones, DateUtils, FactuGES_Intf, schComisionesClient_Intf;
|
||
|
||
{$R *.dfm}
|
||
|
||
procedure TfEditorComisiones.Button1Click(Sender: TObject);
|
||
begin
|
||
//Liberamos
|
||
if Assigned(FCobrosComision) then
|
||
FCobrosComision := Nil;
|
||
|
||
FCobrosComision := dmComisiones.GetCobrosComision(edtFechaIni.Date, edtFechaFin.Date, cxFamilia.text);
|
||
DADataSource.DataTable := FCobrosComision.DataTable;
|
||
DADataSource2.DataTable := FCobrosComision.VendedoresComision.DataTable;
|
||
FCobrosComision.OnTotalChanged := OnTotalChanged;
|
||
DADataSource2.DataTable.Active := True; //No cambiar el orden es importante que el orden sea este
|
||
DADataSource.DataTable.Active := True;
|
||
end;
|
||
|
||
procedure TfEditorComisiones.FormShow(Sender: TObject);
|
||
begin
|
||
inherited;
|
||
edtFechaIni.Date := DateOf(StartOfTheMonth(Now));
|
||
edtFechaFin.Date := DateOf(EndOfTheMonth(Now));
|
||
|
||
ViewGrid
|
||
end;
|
||
|
||
procedure TfEditorComisiones.edtFechaIniPropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
||
begin
|
||
inherited;
|
||
if Length(DisplayValue) = 0 then
|
||
begin
|
||
Error := True;
|
||
ErrorText := 'La fecha no puede ser vac<61>a';
|
||
end;
|
||
end;
|
||
|
||
procedure TfEditorComisiones.CustomEditorGetModified(Sender: TObject;
|
||
var Modified: Boolean);
|
||
begin
|
||
inherited;
|
||
Modified := False;
|
||
end;
|
||
|
||
procedure TfEditorComisiones.cxGridDBTableView1CustomDrawCell(
|
||
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
|
||
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
|
||
var
|
||
IndiceCol : Integer;
|
||
begin
|
||
IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_CobrosCOMISIONSELECCION).Index;
|
||
if UPPERCASE(AViewInfo.GridRecord.DisplayTexts[IndiceCol]) = 'FALSE' then
|
||
begin
|
||
ACanvas.Canvas.Font := cxStyle1.Font;
|
||
// ACanvas.Canvas.Font.Style := [fsStrikeOut];
|
||
// ACanvas.Canvas.Font.Color := clGray;
|
||
end;
|
||
end;
|
||
|
||
procedure TfEditorComisiones.OnTotalChanged(Sender: TObject);
|
||
begin
|
||
edtImporteCobros.Value := FCobrosComision.Total;
|
||
end;
|
||
|
||
procedure TfEditorComisiones.actPrevisualizarExecute(Sender: TObject);
|
||
begin
|
||
// inherited;
|
||
|
||
dxComponentPrinterLink2.PrinterPage.PageHeader.RightTitle.Clear;
|
||
dxComponentPrinterLink2.PrinterPage.PageHeader.RightTitle.Add('Desde ' + edtFechaIni.Text + ' hasta ' + edtFechaFin.Text);
|
||
if (tbxEditFiltro.Text <> '') then
|
||
dxComponentPrinterLink2.PrinterPage.PageHeader.RightTitle.Add('Filtrado por: ' + tbxEditFiltro.Text);
|
||
dxComponentPrinter.Preview;
|
||
end;
|
||
|
||
procedure TfEditorComisiones.tbxEditFiltroChange(Sender: TObject; const Text: String);
|
||
var
|
||
Columna: TcxGridDBColumn;
|
||
i: Integer;
|
||
AItemList: TcxFilterCriteriaItemList;
|
||
AItemList2: TcxFilterCriteriaItemList;
|
||
EsPrimera: Boolean;
|
||
begin
|
||
//Sobre escribimos el evento para saltarnos toda la l<>gica del ViewGrid, ya que
|
||
//lo hacemos directamente sobre el grid del editor que nos interesa.
|
||
// inherited;
|
||
|
||
with cxGrid1.ActiveView.DataController.Filter do
|
||
begin
|
||
BeginUpdate;
|
||
try
|
||
Options := [fcoCaseInsensitive, fcoSoftCompare];
|
||
Root.Clear;
|
||
if Length(Text) > 0 then
|
||
begin
|
||
EsPrimera := True;
|
||
for i:=0 to (cxGrid1.ActiveView as TcxGridDBTableView).ColumnCount - 1 do
|
||
begin
|
||
Columna := (cxGrid1.ActiveView as TcxGridDBTableView).Columns[i];
|
||
if Columna.Visible then
|
||
begin
|
||
if EsPrimera then
|
||
begin
|
||
AItemList := Root;
|
||
AItemList.BoolOperatorKind := fboAnd;
|
||
AItemList2 := AItemList.AddItemList(fboAnd);
|
||
AItemList := AItemList2;
|
||
AItemList2 := AItemList.AddItemList(fboOr);
|
||
AItemList := AItemList2;
|
||
AItemList.AddItem(Columna, foLike, '%'+Text+'%', IntToStr(i));
|
||
EsPrimera := False;
|
||
end
|
||
else begin
|
||
AItemList2 := AItemList.AddItemList(fboOr);
|
||
AItemList2.AddItem(Columna, foLike, '%'+Text+'%', IntToStr(i));
|
||
AItemList := AItemList2;
|
||
end;
|
||
end;
|
||
end;
|
||
Active := True;
|
||
end
|
||
else
|
||
Active := False;
|
||
finally
|
||
EndUpdate;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TfEditorComisiones.actQuitarFiltroExecute(Sender: TObject);
|
||
begin
|
||
// inherited;
|
||
tbxEditFiltro.Text := '';
|
||
end;
|
||
|
||
procedure TfEditorComisiones.actAnchoAutoExecute(Sender: TObject);
|
||
begin
|
||
// inherited;
|
||
cxGridDBTableView1.ApplyBestFit;
|
||
end;
|
||
|
||
procedure TfEditorComisiones.actPrevisualizarUpdate(Sender: TObject);
|
||
begin
|
||
// inherited;
|
||
end;
|
||
|
||
end.
|