unit fcc_controlproducto;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, ZAbstractDataset, ZDataset,
  ZAbstractRODataset, Vcl.Grids, Vcl.DBGrids, Vcl.DBCtrls, Vcl.StdCtrls,
  Vcl.ExtCtrls, frxClass, frxDBSet, frxExportBaseDialog, frxExportPDF;

type
  Tcc_controlproducto = class(TForm)
    frxPDFExport1: TfrxPDFExport;
    informedb: TfrxDBDataset;
    informedbempresa: TfrxDBDataset;
    informes: TfrxReport;
    Panel14: TPanel;
    btEcancelar: TButton;
    btEmodificar: TButton;
    btEborrar: TButton;
    btEnuevo: TButton;
    btEguardar: TButton;
    bteimprimir: TButton;
    Panel2: TPanel;
    Label3: TLabel;
    Label4: TLabel;
    comboencargado: TDBLookupComboBox;
    combocampanya: TDBLookupComboBox;
    Panel3: TPanel;
    DBGrid1: TDBGrid;
    qinsertar: TZReadOnlyQuery;
    qcampanyas: TZReadOnlyQuery;
    qcampanyasid: TIntegerField;
    qcampanyasidempresa: TIntegerField;
    qcampanyasid_anterior: TIntegerField;
    qcampanyasdescripcion: TWideStringField;
    qcampanyasfechainicio: TDateField;
    qcampanyasfechafin: TDateField;
    qcampanyasult_pesada: TIntegerField;
    qcc_productosacabados: TZQuery;
    qcontroladores: TZReadOnlyQuery;
    qcontroladoresnombre: TWideStringField;
    qcontroladoreside: TIntegerField;
    qcontroladoresid: TSmallintField;
    qcontroladoresfirma: TBlobField;
    qcc_productosacabadosinf: TZQuery;
    dsqcontroladores: TDataSource;
    dsqcampanyas: TDataSource;
    dsqccproductosacabados: TDataSource;
    qcc_productosacabadoside: TIntegerField;
    qcc_productosacabadosidp: TIntegerField;
    qcc_productosacabadosidpd: TIntegerField;
    qcc_productosacabadoscc_pedidocliente: TWideStringField;
    qcc_productosacabadoscc_producto: TWideStringField;
    qcc_productosacabadoscc_envase: TWideStringField;
    qcc_productosacabadoscc_acabado: TWideStringField;
    qcc_productosacabadoscc_calidad: TWideStringField;
    qcc_productosacabadosfecha: TDateField;
    qcc_productosacabadosidc: TIntegerField;
    qcc_productosacabadosnomcliente: TWideStringField;
    qcc_productosacabadoscantidad: TFloatField;
    qcc_productosacabadoscc_confeccion: TWideStringField;
    qcc_productosacabadoscc_peso: TWideStringField;
    qcc_productosacabadoscc_forma: TWideStringField;
    qcc_productosacabadoscc_aspecto: TWideStringField;
    qcc_productosacabadoscc_brix: TIntegerField;
    qcc_productosacabadoscc_plagas: TWideStringField;
    qcc_productosacabadoscc_golpes: TWideStringField;
    qcc_productosacabadoscc_sabor: TWideStringField;
    qcc_productosacabadoscc_cantidad: TWideStringField;
    qcc_productosacabadoscc_codigobarras: TWideStringField;
    qcc_productosacabadoscc_codigos: TWideStringField;
    qcc_productosacabadoscc_menciones: TWideStringField;
    qcc_productosacabadoscc_impresion: TWideStringField;
    qcc_productosacabadoscc_envasado: TWideStringField;
    qcc_productosacabadoscc_paletizado: TWideStringField;
    qcc_productosacabadoscc_ausenciacuerpos: TWideStringField;
    qcc_productosacabadoscc_antes: TWideStringField;
    qcc_productosacabadoscc_durante: TWideStringField;
    qcc_productosacabadoscc_final: TWideStringField;
    informedbencargado: TfrxDBDataset;
    dsqccproductosacabadosinf: TDataSource;
    qcc_productosacabadosinfide: TIntegerField;
    qcc_productosacabadosinfidp: TIntegerField;
    qcc_productosacabadosinfidpd: TIntegerField;
    qcc_productosacabadosinfcc_pedidocliente: TWideStringField;
    qcc_productosacabadosinfcc_producto: TWideStringField;
    qcc_productosacabadosinfcc_envase: TWideStringField;
    qcc_productosacabadosinfcc_acabado: TWideStringField;
    qcc_productosacabadosinfcc_calidad: TWideStringField;
    qcc_productosacabadosinffecha: TDateField;
    qcc_productosacabadosinfidc: TIntegerField;
    qcc_productosacabadosinfnomcliente: TWideStringField;
    qcc_productosacabadosinfcantidad: TFloatField;
    qcc_productosacabadosinfcc_confeccion: TWideStringField;
    qcc_productosacabadosinfcc_peso: TWideStringField;
    qcc_productosacabadosinfcc_forma: TWideStringField;
    qcc_productosacabadosinfcc_aspecto: TWideStringField;
    qcc_productosacabadosinfcc_brix: TIntegerField;
    qcc_productosacabadosinfcc_plagas: TWideStringField;
    qcc_productosacabadosinfcc_golpes: TWideStringField;
    qcc_productosacabadosinfcc_sabor: TWideStringField;
    qcc_productosacabadosinfcc_cantidad: TWideStringField;
    qcc_productosacabadosinfcc_codigobarras: TWideStringField;
    qcc_productosacabadosinfcc_codigos: TWideStringField;
    qcc_productosacabadosinfcc_menciones: TWideStringField;
    qcc_productosacabadosinfcc_impresion: TWideStringField;
    qcc_productosacabadosinfcc_envasado: TWideStringField;
    qcc_productosacabadosinfcc_paletizado: TWideStringField;
    qcc_productosacabadosinfcc_ausenciacuerpos: TWideStringField;
    qcc_productosacabadosinfcc_antes: TWideStringField;
    qcc_productosacabadosinfcc_durante: TWideStringField;
    qcc_productosacabadosinfcc_final: TWideStringField;
    procedure FormShow(Sender: TObject);
    procedure dsqcampanyasDataChange(Sender: TObject; Field: TField);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure bteimprimirClick(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  cc_controlproducto: Tcc_controlproducto;
const
  rojo=$00AAAAFF;
  amarillo=$00B9FFFF;
  verde=$00C7FBAA;
  azul=$00FFFFBB;
implementation

{$R *.dfm}

procedure Tcc_controlproducto.bteimprimirClick(Sender: TObject);
begin
   qcc_productosacabadosinf.Close;
   qcc_productosacabadosinf.Prepare;
   qcc_productosacabadosinf.ParamByName('FECHAINICIO').AsDate:=qcampanyasfechainicio.AsDateTime;
   qcc_productosacabadosinf.ParamByName('FECHAFIN').AsDate:=qcampanyasfechafin.AsDateTime;
   qcc_productosacabadosinf.ParamByName('EMPRESA').Asinteger:=qcampanyasidempresa.Asinteger;
   qcc_productosacabadosinf.Open;
   informedb.Datasource:=dsqccproductosacabadosinf;
   informes.Report.Clear;
   informes.LoadFromFile('c:\agrigest\informes\infccproductoacabado.fr3');
   informes.Variables.Variables['CAMPANYA']:=QUOTEDSTR(qcampanyasdescripcion.asstring);
   informes.ShowReport();
end;

procedure Tcc_controlproducto.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
     if (qcc_productosacabadoscc_brix.AsString='') then
    begin
        DBGrid1.Canvas.brush.Color := rojo;
    end else
        DBGrid1.Canvas.brush.Color := verde;

    DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

procedure Tcc_controlproducto.dsqcampanyasDataChange(Sender: TObject;
  Field: TField);
begin
    qinsertar.Close;
    qinsertar.Prepare;
    qinsertar.ParamByName('FECHAINICIO').AsDate:=qcampanyasfechainicio.AsDateTime;
    qinsertar.ParamByName('FECHAFIN').AsDate:=qcampanyasfechafin.AsDateTime;
    qinsertar.ExecSQL;
    qcc_productosacabados.Close;
    qcc_productosacabados.Prepare;
    qcc_productosacabados.ParamByName('FECHAINICIO').AsDate:=qcampanyasfechainicio.AsDateTime;
    qcc_productosacabados.ParamByName('FECHAFIN').AsDate:=qcampanyasfechafin.AsDateTime;
    qcc_productosacabados.ParamByName('EMPRESA').Asinteger:=qcampanyasidempresa.Asinteger;
    qcc_productosacabados.Open;
end;

procedure Tcc_controlproducto.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if (activecontrol is tdbgrid) then
    begin
        if Key = 13 then Key :=9;
    end;

end;

procedure Tcc_controlproducto.FormKeyPress(Sender: TObject; var Key: Char);
var formatos:tformatsettings;
punto:string;
begin
    GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, formatos);
    punto:=formatos.DecimalSeparator;
    if punto=',' then
    begin
        key:=upcase(key);
        if (key='.') and (activecontrol is tdbedit) then
        begin
           if  (activecontrol as tdbedit).Field.DataType in [ftfloat,ftCurrency,ftbcd,ftfmtbcd] then key:=','
        end;
        if (key='.') and (activecontrol is tedit) then
        begin
           key:=','
        end;

        if (key='.') and (activecontrol is tdbgrid) then
        begin
            key:=',';
        end;
    end;
    if (activecontrol is tdbgrid) then
    begin
        if Key = #13 then Key :=#9;
    end;
    if (activecontrol is tdbcheckbox) then
    begin
        if Key = #13 then Key :=#9;
    end;

    if (key=#13) then
    begin
        Perform(WM_NextDLGCtl,0,0);
        key:=#0;
    end;
end;

procedure Tcc_controlproducto.FormShow(Sender: TObject);
begin
    qcampanyas.Open;
    combocampanya.KeyValue:=qcampanyasdescripcion.AsString;
    qcontroladores.Open;
    comboencargado.KeyValue:=qcontroladoresnombre.AsString;
end;

end.
