unit datostrazabilidad2;

interface

uses
  System.SysUtils, System.Classes, Data.DB, ZAbstractTable, ZDataset,
  ZAbstractDataset, ZAbstractRODataset;

type
  Tdmtr = class(TDataModule)
    dsqcampanyas: TDataSource;
    qcampanyas: TZReadOnlyQuery;
    dsqlotes: TDataSource;
    qlotes: TZQuery;
    qpartidas: TZReadOnlyQuery;
    qentradas: TZReadOnlyQuery;
    qpedidos: TZReadOnlyQuery;
    qtratamientos2: TZReadOnlyQuery;
    dsqpartidas: TDataSource;
    dsqentradas: TDataSource;
    dsqea_pesadas: TDataSource;
    dsqsalidas: TDataSource;
    dsqpedidos: TDataSource;
    dsqtratamientos: TDataSource;
    qea_pesadas: TZQuery;
    qsalidas: TZQuery;
    qaux: TZReadOnlyQuery;
    qtiposgenerador: TZReadOnlyQuery;
    qtiposgeneradoridempresa: TIntegerField;
    qtiposgeneradorid: TIntegerField;
    qtiposgeneradorcodigo: TWideStringField;
    qtiposgeneradordescripcion: TWideStringField;
    qtiposgeneradorfamilia: TIntegerField;
    dsqtiposgenerador: TDataSource;
    dsqsalidas_sd: TDataSource;
    qsalidas_sd: TZQuery;
    dsqsalidas_ds: TDataSource;
    qsalidas_ds: TZQuery;
    dsqinfentradas: TDataSource;
    qinfentradas: TZQuery;
    documentos_tmp: TZTable;
    qdocumentos: TZQuery;
    qcampanyasid: TIntegerField;
    qcampanyasidempresa: TIntegerField;
    qcampanyasid_anterior: TIntegerField;
    qcampanyasdescripcion: TWideStringField;
    qcampanyasfechainicio: TDateField;
    qcampanyasfechafin: TDateField;
    qcampanyasult_pesada: TIntegerField;
    qlotesid: TIntegerField;
    qlotesidempresa: TIntegerField;
    qlotescodigo: TIntegerField;
    qlotesfechaini_trabajo: TDateField;
    qlotesfechafin_trabajo: TDateField;
    qlotesfecha: TDateField;
    qlotesfecha_caducidad: TDateField;
    qlotesPARCELA: TWideStringField;
    qlotesPRODUCTOR: TWideStringField;
    qlotesPAISORIGEN: TWideStringField;
    qlotesMPRIMA: TWideStringField;
    qlotesnum_generadores: TIntegerField;
    qlotestipo_generador: TWideStringField;
    qlotesdesc_generador: TWideStringField;
    qloteslote_proveedor: TWideStringField;
    qlotesentran_teoricos: TFloatField;
    qlotesentran_reales: TFloatField;
    qlotessalen_teoricos: TFloatField;
    qlotessalen_reales: TFloatField;
    qlotesmerma: TFloatField;
    qlotesporc_merma: TFloatField;
    qlotesdesperdicios: TFloatField;
    qlotestrazabilidad: TWideStringField;
    qlotesobservaciones: TWideStringField;
    qlotespropietario: TIntegerField;
    qlotesresultado: TFloatField;
    qpartidasid: TIntegerField;
    qpartidaside: TIntegerField;
    qpartidasfecha: TDateField;
    qpartidasid_parcela: TWideStringField;
    qpartidasid_mprimas: TWideStringField;
    qpartidaslote: TIntegerField;
    qentradasid: TIntegerField;
    qentradaside: TIntegerField;
    qentradasfecha: TDateField;
    qentradashora: TTimeField;
    qentradaspartida: TIntegerField;
    qentradasnum_palets: TIntegerField;
    qentradasnum_cajas: TIntegerField;
    qentradaspeso_bruto: TFloatField;
    qentradaspeso_neto: TFloatField;
    qentradaspeso_medio: TFloatField;
    qentradasmatricula: TWideStringField;
    qentradasmprima: TWideStringField;
    qea_pesadasid: TIntegerField;
    qea_pesadasidempresa: TIntegerField;
    qea_pesadasidea: TIntegerField;
    qea_pesadasid_palet: TWideStringField;
    qea_pesadasnum_palets: TIntegerField;
    qea_pesadasid_palet2: TWideStringField;
    qea_pesadasnum_palets2: TIntegerField;
    qea_pesadasid_envase: TWideStringField;
    qea_pesadasnum_envases: TIntegerField;
    qea_pesadasiddestino: TIntegerField;
    qea_pesadasdestino: TWideStringField;
    qea_pesadaspeso_bruto: TFloatField;
    qea_pesadastara: TFloatField;
    qea_pesadaspeso_neto: TFloatField;
    qea_pesadaspeso_neto_teorico: TFloatField;
    qea_pesadaspeso_medio: TFloatField;
    qea_pesadastemperatura: TFloatField;
    qea_pesadasfecha: TDateField;
    qea_pesadasfechatrabajo: TDateField;
    qea_pesadashora: TTimeField;
    qea_pesadasCEA: TWideStringField;
    qea_pesadasresto_cajas: TFloatField;
    qea_pesadasresto_pesoneto: TFloatField;
    qea_pesadaslote: TIntegerField;
    qea_pesadasorigen: TWideStringField;
    qea_pesadasidorigen: TIntegerField;
    qea_pesadasmprima: TWideStringField;
    qea_pesadasmprima_p: TWideStringField;
    qea_pesadasgen_caja: TIntegerField;
    qea_pesadascosto: TFloatField;
    qea_pesadascoste_manipulacion: TFloatField;
    qea_pesadasdias_camara: TIntegerField;
    qea_pesadascosto_camara: TFloatField;
    qea_pesadascodigoR: TWideStringField;
    qea_pesadasparcela: TWideStringField;
    qea_pesadasfecha_cierre: TDateField;
    qea_pesadascosto_materiales: TFloatField;
    qea_pesadascosto_cosechar: TFloatField;
    qea_pesadasborrado: TIntegerField;
    qea_pesadasseleccionado: TIntegerField;
    qea_pesadasobservaciones: TWideStringField;
    qea_pesadastipo_trabajo: TWideStringField;
    qea_pesadastipo_generador: TWideStringField;
    qea_pesadasremanipulado: TIntegerField;
    qea_pesadasfecha_envasado: TDateField;
    qea_pesadascodean: TWideStringField;
    qea_pesadascodssc: TWideStringField;
    qea_pesadaspedidocliente: TIntegerField;
    qea_pesadascosto_sinmt: TFloatField;
    qea_pesadasrecuperar_envases: TIntegerField;
    qea_pesadasidalbaran: TWideStringField;
    qea_pesadases_entrada: TIntegerField;
    qea_pesadasdesc_calibre: TWideStringField;
    qea_pesadasdesc_formato: TWideStringField;
    qea_pesadasdesc_envase: TWideStringField;
    qea_pesadasidfactura: TWideStringField;
    qsalidasid: TIntegerField;
    qsalidasfecha: TDateField;
    qsalidasfechatrabajo: TDateField;
    qsalidasorigen: TWideStringField;
    qsalidasparcela: TWideStringField;
    qsalidasdestino: TWideStringField;
    qsalidasmprima: TWideStringField;
    qsalidasmprima_p: TWideStringField;
    qsalidascosto: TFloatField;
    qsalidasid_palet: TWideStringField;
    qsalidasnum_palets: TIntegerField;
    qsalidasid_envase: TWideStringField;
    qsalidasnum_envases: TIntegerField;
    qsalidasgen_caja: TIntegerField;
    qsalidastipo_generador: TWideStringField;
    qsalidaspedidocliente: TIntegerField;
    qsalidascliente: TWideStringField;
    qsalidasciudad: TWideStringField;
    qsalidaspeso_bruto: TFloatField;
    qsalidaspeso_neto: TFloatField;
    qsalidaspeso_neto_teorico: TFloatField;
    qsalidaspeso_medio: TFloatField;
    qsalidastemperatura: TFloatField;
    qsalidaslote: TIntegerField;
    qsalidasidalbaran: TWideStringField;
    qsalidasidfactura: TWideStringField;
    qinfentradasid: TIntegerField;
    qinfentradasfecha: TDateField;
    qinfentradasfechatrabajo: TDateField;
    qinfentradasparcela: TWideStringField;
    qinfentradasmprima: TWideStringField;
    qinfentradasid_envase: TWideStringField;
    qinfentradasnum_envases: TIntegerField;
    qinfentradascliente: TWideStringField;
    qinfentradasciudad: TWideStringField;
    qinfentradaspeso_bruto: TFloatField;
    qinfentradaspeso_neto: TFloatField;
    qinfentradaspeso_neto_teorico: TFloatField;
    qinfentradaspeso_medio: TFloatField;
    qinfentradastemperatura: TFloatField;
    qinfentradaslote: TIntegerField;
    qinfentradasidalbaran: TWideStringField;
    qinfentradaspedidocliente: TIntegerField;
    qinfentradasdesc_calibre: TWideStringField;
    qinfentradasdesc_formato: TWideStringField;
    qinfentradasidfactura: TWideStringField;
    qsalidas_sdid: TIntegerField;
    qsalidas_sdfecha: TDateField;
    qsalidas_sdfechatrabajo: TDateField;
    qsalidas_sdparcela: TWideStringField;
    qsalidas_sdmprima: TWideStringField;
    qsalidas_sdid_envase: TWideStringField;
    qsalidas_sdnum_envases: TIntegerField;
    qsalidas_sdcliente: TWideStringField;
    qsalidas_sdciudad: TWideStringField;
    qsalidas_sdpeso_neto: TFloatField;
    qsalidas_sdpeso_neto_teorico: TFloatField;
    qsalidas_sdpeso_medio: TFloatField;
    qsalidas_sdtemperatura: TFloatField;
    qsalidas_sdlote: TIntegerField;
    qsalidas_sdidalbaran: TWideStringField;
    qsalidas_sdpedidocliente: TIntegerField;
    qsalidas_sddesc_calibre: TWideStringField;
    qsalidas_sddesc_formato: TWideStringField;
    qsalidas_sdidfactura: TWideStringField;
    qsalidas_dsid: TIntegerField;
    qsalidas_dsfecha: TDateField;
    qsalidas_dsfechatrabajo: TDateField;
    qsalidas_dsparcela: TWideStringField;
    qsalidas_dsmprima: TWideStringField;
    qsalidas_dsid_envase: TWideStringField;
    qsalidas_dsnum_envases: TIntegerField;
    qsalidas_dscliente: TWideStringField;
    qsalidas_dsciudad: TWideStringField;
    qsalidas_dspeso_neto: TFloatField;
    qsalidas_dspeso_neto_teorico: TFloatField;
    qsalidas_dspeso_medio: TFloatField;
    qsalidas_dstemperatura: TFloatField;
    qsalidas_dslote: TIntegerField;
    qsalidas_dsidalbaran: TWideStringField;
    qsalidas_dspedidocliente: TIntegerField;
    qsalidas_dsdesc_calibre: TWideStringField;
    qsalidas_dsdesc_formato: TWideStringField;
    qsalidas_dsidfactura: TWideStringField;
    documentos_tmpid: TIntegerField;
    documentos_tmpide: TIntegerField;
    documentos_tmpfecha: TDateField;
    documentos_tmpdescripcion: TWideStringField;
    documentos_tmparchivo: TBlobField;
    documentos_tmpnomarchivo: TWideStringField;
    documentos_tmpextension: TWideStringField;
    documentos_tmpidlote: TIntegerField;
    documentos_tmpcodpar: TWideStringField;
    documentos_tmpidea: TIntegerField;
    documentos_tmpidt: TIntegerField;
    documentos_tmpidaf: TIntegerField;
    qdocumentosid: TIntegerField;
    qdocumentoside: TIntegerField;
    qdocumentosfecha: TDateField;
    qdocumentosdescripcion: TWideStringField;
    qdocumentosarchivo: TBlobField;
    qdocumentosnomarchivo: TWideStringField;
    qdocumentosextension: TWideStringField;
    qdocumentosidlote: TIntegerField;
    qdocumentoscodpar: TWideStringField;
    qdocumentosidea: TIntegerField;
    qdocumentosidt: TIntegerField;
    qdocumentosidaf: TIntegerField;
    qsalidascoste_manipulacion: TFloatField;
    qsalidascosto_materiales: TFloatField;
    qsalidas_sdcoste_manipulacion: TFloatField;
    qsalidas_sdcosto_materiales: TFloatField;
    qlotessgg: TWideStringField;
    qlotessdop: TWideStringField;
    qlotessigp: TWideStringField;
    qlotessifs: TWideStringField;
    qlotessbrc: TWideStringField;
    procedure dsqlotesDataChange(Sender: TObject; Field: TField);
    procedure qlotesBeforeOpen(DataSet: TDataSet);
    procedure dsqcampanyasDataChange(Sender: TObject; Field: TField);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  dmtr: Tdmtr;

implementation

{%CLASSGROUP 'Vcl.Controls.TControl'}

uses principal;

{$R *.dfm}

procedure Tdmtr.dsqcampanyasDataChange(Sender: TObject; Field: TField);
begin
   qlotes.close;
   qlotes.Open;
   base.combocampanyas.KeyValue:=qcampanyasdescripcion.asstring;
end;

procedure Tdmtr.dsqlotesDataChange(Sender: TObject; Field: TField);
begin
if qlotes.State in [dsedit,dsbrowse] then
begin
    qsalidas.Close;
    qsalidas.ParamByName('LOTE').AsString:=qlotescodigo.AsString;
    qsalidas.Prepare;
    qsalidas.Open;
    qea_pesadas.Close;
    qea_pesadas.ParamByName('LOTE').AsString:=qlotescodigo.AsString;
    qea_pesadas.Prepare;
    qea_pesadas.Open;
    qdocumentos.Close;
    qdocumentos.SQL.Clear;
    qdocumentos.sql.Add('select * from documentos where ide='+qlotesidempresa.asstring+' and idlote='+qlotescodigo.AsString+' order by fecha desc');
    qdocumentos.open;
end;
end;

procedure Tdmtr.qlotesBeforeOpen(DataSet: TDataSet);
var filtro:string;
    anyo,mes,dia:word;
    fechainicio,fechafin,parcela:string;
begin
   decodedate(qcampanyasfechainicio.AsDateTime,anyo,mes,dia);
   fechainicio:=''''+floattostr(anyo)+'-'+floattostr(mes)+'-'+floattostr(dia)+'''';
   decodedate(qcampanyasfechafin.AsDateTime,anyo,mes,dia);
   fechafin:=''''+floattostr(anyo)+'-'+floattostr(mes)+'-'+floattostr(dia)+'''';
{   if filtrolotes<>'' then
    begin
          filtro:=filtro+ ' where fecha>='+fechainicio+' and fecha<='+fechafin+' and parcela like('+''''+filtrolotes+''''+') or trazabilidad like('+''''+filtrolotes+''''+')';
    end;
    if filtrolotes='' then
    begin
       filtro:=' where fecha>='+fechainicio+' and fecha<='+fechafin;
    end;
    qlotes.SQL.Clear;
    qlotes.SQL.Add('select * from lotes ' + filtro +' order by codigo desc')     }
    qlotes.Prepare;
    qlotes.ParamByName('DESDE').AsDate:=qcampanyasfechainicio.asdatetime;
    qlotes.ParamByName('HASTA').AsDate:=qcampanyasfechafin.asdatetime;
    if filtrolotes='' then parcela:='%' else parcela:=filtrolotes;
    qlotes.ParamByName('PARCELA').Asstring:=parcela;
end;

end.
