unit fcc_materiasprimas;

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.DBCtrls, 
    Vcl.Grids, Vcl.DBGrids, Vcl.ExtCtrls,
  Vcl.StdCtrls, frxClass, frxExportPDF, frxDBSet, frxExportBaseDialog;

type
  Tcc_materiasprimas = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    DBGrid1: TDBGrid;
    qcampanyas: TFDQuery;
    qlotes: TFDQuery;
    dsqcampanyas: TDataSource;
    combocampanyas: TDBLookupComboBox;
    qcampanyasid: TIntegerField;
    qcampanyasidempresa: TIntegerField;
    qcampanyasid_anterior: TIntegerField;
    qcampanyasdescripcion: TWideStringField;
    qcampanyasfechainicio: TDateField;
    qcampanyasfechafin: TDateField;
    qcampanyasult_pesada: TIntegerField;
    Label1: TLabel;
    qlotesidempresa: TIntegerField;
    qlotescodigo: TIntegerField;
    qlotesfecha: TDateField;
    qlotesmprima: TWideStringField;
    qcc_materiasprimas: TFDQuery;
    dsqccmateriasprimas: TDataSource;
    dsqccmateriasprimasinf: TDataSource;
    qcc_materiasprimasinf: TFDQuery;
    qcc_materiasprimaside: TIntegerField;
    qcc_materiasprimaslote: TIntegerField;
    qcc_materiasprimasfecha: TDateField;
    qcc_materiasprimastamanyo: TWideStringField;
    qcc_materiasprimasaspecto: TWideStringField;
    qcc_materiasprimascolor: TWideStringField;
    qcc_materiasprimasausencia_golpes: TWideStringField;
    qcc_materiasprimaslimpieza: TWideStringField;
    qcc_materiasprimasausencia_plagas: TWideStringField;
    qcc_materiasprimasausencia_insectos: TWideStringField;
    qcc_materiasprimasausencia_cuerpos: TWideStringField;
    qcc_materiasprimassabotaje: TWideStringField;
    qcc_materiasprimasresultado: TWideStringField;
    qcc_materiasprimasobservaciones: TWideStringField;
    qcc_materiasprimasbrix: TIntegerField;
    qcc_materiasprimasinfide: TIntegerField;
    qcc_materiasprimasinflote: TIntegerField;
    qcc_materiasprimasinffecha: TDateField;
    qcc_materiasprimasinftamanyo: TWideStringField;
    qcc_materiasprimasinfaspecto: TWideStringField;
    qcc_materiasprimasinfcolor: TWideStringField;
    qcc_materiasprimasinfausencia_golpes: TWideStringField;
    qcc_materiasprimasinflimpieza: TWideStringField;
    qcc_materiasprimasinfausencia_plagas: TWideStringField;
    qcc_materiasprimasinfausencia_insectos: TWideStringField;
    qcc_materiasprimasinfausencia_cuerpos: TWideStringField;
    qcc_materiasprimasinfsabotaje: TWideStringField;
    qcc_materiasprimasinfresultado: TWideStringField;
    qcc_materiasprimasinfobservaciones: TWideStringField;
    qcc_materiasprimasinfbrix: TIntegerField;
    Label3: TLabel;
    comboencargado: TDBLookupComboBox;
    qcontroladores: TFDQuery;
    qcontroladoresnombre: TWideStringField;
    qcontroladoreside: TIntegerField;
    qcontroladoresid: TSmallintField;
    qcontroladoresfirma: TBlobField;
    dscontroladores: TDataSource;
    bteimprimir: TButton;
    informedb: TfrxDBDataset;
    frxPDFExport1: TfrxPDFExport;
    informes: TfrxReport;
    informedbencargado: TfrxDBDataset;
    informedbempresa: TfrxDBDataset;
    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);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  cc_materiasprimas: Tcc_materiasprimas;
const

  rojo=$00AAAAFF;
  amarillo=$00B9FFFF;
  verde=$00C7FBAA;
  azul=$00FFFFBB;


implementation

{$R *.dfm}

procedure Tcc_materiasprimas.bteimprimirClick(Sender: TObject);
begin
   qcc_materiasprimasinf.SQL.Clear;
   qcc_materiasprimasinf.SQL.Add('select * from ('+qcc_materiasprimas.sql.text+') as materiasprimas where brix is not null order by lote');
   qcc_materiasprimasinf.Open;
   informedb.Datasource:=dsqccmateriasprimasinf;
   informes.Report.Clear;
   informes.LoadFromFile('c:\agrigest\informes\infccmateriasprimas.fr3');
   informes.Variables.Variables['CAMPANYA']:=QUOTEDSTR(qcampanyasdescripcion.asstring);
   informes.ShowReport();

end;

procedure Tcc_materiasprimas.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
     if (qcc_materiasprimasbrix.AsString='') then
    begin
        DBGrid1.Canvas.brush.Color := rojo;
    end else
        DBGrid1.Canvas.brush.Color := verde;

    DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

procedure Tcc_materiasprimas.dsqcampanyasDataChange(Sender: TObject;
  Field: TField);
var anyo,mes,dia:word;
    vanyo,vmes,vdia,vmessig,vfechainicio,vfechafin,variedades:string;
begin
    decodedate(qcampanyasfechainicio.AsDateTime,anyo,mes,dia);
    vanyo:=floattostr(anyo);
    vmes:=floattostr(mes);
    vdia:=floattostr(dia);
    vfechainicio:=''''+vanyo+'-'+vmes+'-'+vdia+'''';
    decodedate(qcampanyasfechafin.AsDateTime,anyo,mes,dia);
    vanyo:=floattostr(anyo);
    vmes:=floattostr(mes);
    vdia:=floattostr(dia);
    vfechafin:=''''+vanyo+'-'+vmes+'-'+vdia+'''';
    qlotes.SQL.Clear;
    qlotes.SQL.Add('select idempresa,codigo,fecha,mprima from lotes where fecha>='+vfechainicio+' and fecha<='+vfechafin+' and (idempresa,codigo) not in (select ide,lote  from cc_materiasprimas) order by idempresa,codigo desc');
    qlotes.Open;
    qcc_materiasprimas.SQL.Clear;
    qcc_materiasprimas.SQL.Add('select * from cc_materiasprimas where fecha>='+vfechainicio+' and fecha<='+vfechafin+' order by lote desc');
    qcc_materiasprimas.Open;
    if qlotes.RecordCount>0 then
    begin
      while not qlotes.Eof do
      begin
         qcc_materiasprimas.Append;
         qcc_materiasprimaside.value:=qlotesidempresa.AsInteger;
         qcc_materiasprimaslote.value:=qlotescodigo.Asinteger;
         qcc_materiasprimasobservaciones.value:=qlotesmprima.Asstring;
         qcc_materiasprimasfecha.value:=qlotesfecha.Asdatetime;
         qcc_materiasprimastamanyo.value:='C';
         qcc_materiasprimasaspecto.value:='C';
         qcc_materiasprimascolor.value:='C';
         qcc_materiasprimasausencia_golpes.value:='C';
         qcc_materiasprimaslimpieza.value:='C';
         qcc_materiasprimasausencia_plagas.value:='C';
         qcc_materiasprimasausencia_insectos.value:='C';
         qcc_materiasprimasausencia_cuerpos.value:='C';
         qcc_materiasprimassabotaje.value:='C';
         qcc_materiasprimasresultado.value:='C';
         qcc_materiasprimas.Post;
         qlotes.Next;
      end;
    end;


end;

procedure Tcc_materiasprimas.FormShow(Sender: TObject);
begin
    qcampanyas.Open;
    qcontroladores.Open;
    qlotes.Open;
    combocampanyas.Keyvalue:=qcampanyasid.asstring;
    comboencargado.Keyvalue:=qcontroladoresnombre.asstring;

end;

end.
