unit fcc_materiasprimas;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.DBCtrls, ZAbstractDataset,
  ZDataset, ZAbstractRODataset, Vcl.Grids, Vcl.DBGrids, Vcl.ExtCtrls,
  Vcl.StdCtrls, frxClass, frxExportPDF, frxDBSet, frxExportBaseDialog;

type
  Tcc_materiasprimas = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    DBGrid1: TDBGrid;
    qcampanyas: TZReadOnlyQuery;
    qlotes: TZQuery;
    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: TZQuery;
    dsqccmateriasprimas: TDataSource;
    dsqccmateriasprimasinf: TDataSource;
    qcc_materiasprimasinf: TZQuery;
    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: TZReadOnlyQuery;
    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.
