unit fcc_controlproducto;

interface

uses
  FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Stan.Async, FireDAC.DApt, FireDAC.Comp.DataSet, FireDAC.Comp.Client, uFireDacHelper,
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB,  
   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: TFDQuery;
    qcampanyas: TFDQuery;
    qcampanyasid: TIntegerField;
    qcampanyasidempresa: TIntegerField;
    qcampanyasid_anterior: TIntegerField;
    qcampanyasdescripcion: TWideStringField;
    qcampanyasfechainicio: TDateField;
    qcampanyasfechafin: TDateField;
    qcampanyasult_pesada: TIntegerField;
    qcc_productosacabados: TFDQuery;
    qcontroladores: TFDQuery;
    qcontroladoresnombre: TWideStringField;
    qcontroladoreside: TIntegerField;
    qcontroladoresid: TSmallintField;
    qcontroladoresfirma: TBlobField;
    qcc_productosacabadosinf: TFDQuery;
    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.
