﻿unit fgenerartratamientos;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.StdCtrls,
  ZAbstractDataset, ZDataset, Data.DB, Vcl.Grids, Vcl.DBGrids,
  ZAbstractRODataset, Vcl.DBCtrls;

type
  Tgenerartratamientos = class(TForm)
    BtGenerar: TButton;
    vfecha: TDateTimePicker;
    qrecomendaciones: TZReadOnlyQuery;
    em: TDBGrid;
    Label1: TLabel;
    dsqrecomendaciones: TDataSource;
    qrecomendacionesid: TIntegerField;
    qrecomendacionesdescripcion: TWideStringField;
    qrecomendacionesobservaciones: TWideStringField;
    qrecomendacionesfecha: TDateField;
    qrecomendacionesvelocidad: TFloatField;
    qrecomendacionesnum_boquillas: TIntegerField;
    qrecomendacionestipo_boquilla: TWideStringField;
    qrecomendacionespresion: TIntegerField;
    qrecomendacioneslitros_hect: TIntegerField;
    qrecomendacionesdesc_boquilla: TWideStringField;
    qrecomendacioneslitros_minuto: TFloatField;
    qrecomendacionesidparcela: TWideStringField;
    qrecomendacionesparcela: TWideStringField;
    qrecomendacionessuperficie: TFloatField;
    qidtratamiento: TZReadOnlyQuery;
    qtratamientos: TZQuery;
    qidtratamientoid: TLargeintField;
    qrecomendacionesdetalle: TZReadOnlyQuery;
    qrecomendacionesdetalleide: TIntegerField;
    qrecomendacionesdetalleidt: TIntegerField;
    qrecomendacionesdetalleidaf: TIntegerField;
    qrecomendacionesdetalleidma: TIntegerField;
    qrecomendacionesdetalledescripcion_af: TWideStringField;
    qrecomendacionesdetalledescripcion_ma: TWideStringField;
    qrecomendacionesdetallecantidad_base: TFloatField;
    qrecomendacionesdetalledosis: TFloatField;
    qrecomendacionesdetalleunidad_medida: TWideStringField;
    qrecomendacionesdetalleregistro: TWideStringField;
    qrecomendacionesdetalleplazo: TIntegerField;
    qrecomendacionesdetalleficha: TBlobField;
    qrecomendacionesdetallecantidad_mezcla: TIntegerField;
    qrecomendacionesdetallecantidad_materia: TFloatField;
    qrecomendacionesdetalleorden: TIntegerField;
    qtratamientosdetalle: TZQuery;
    qtratamientosdetalleide: TIntegerField;
    qtratamientosdetalleidt: TIntegerField;
    qtratamientosdetalleidaf: TIntegerField;
    qtratamientosdetalleidma: TIntegerField;
    qtratamientosdetalledescripcion_af: TWideStringField;
    qtratamientosdetalledescripcion_ma: TWideStringField;
    qtratamientosdetallecantidad_base: TFloatField;
    qtratamientosdetalledosis: TFloatField;
    qtratamientosdetalleunidad_medida: TWideStringField;
    qtratamientosdetalleregistro: TWideStringField;
    qtratamientosdetalleplazo: TIntegerField;
    qtratamientosdetalleficha: TBlobField;
    qtratamientosdetallecantidad_mezcla: TFloatField;
    qtratamientosdetallecantidad_materia: TFloatField;
    qtratamientosdetalleen_cuaderno: TIntegerField;
    qtratamientosdetalleidconsumo: TIntegerField;
    qtratamientosdetalleorden: TIntegerField;
    qtratamientosdetalleidentrada: TIntegerField;
    qtratamientosdetallefecha: TDateField;
    qtratamientoside: TIntegerField;
    qtratamientosid: TIntegerField;
    qtratamientosfecha: TDateField;
    qtratamientosidcc: TWideStringField;
    qtratamientosdesc_cc: TWideStringField;
    qtratamientosresponsable: TWideStringField;
    qtratamientosidrecomendacion: TIntegerField;
    qtratamientoscontabilizado: TIntegerField;
    qtratamientosnif_responsable: TWideStringField;
    qtratamientosobservaciones: TWideStringField;
    qtratamientosoperario: TWideStringField;
    qtratamientosidjustificacion: TIntegerField;
    qtratamientoscondiciones_metereologicas: TWideStringField;
    qtratamientoshora_fin: TTimeField;
    qtratamientostractor: TWideStringField;
    qtratamientosdeposito: TWideStringField;
    qtratamientosvelocidad: TFloatField;
    qtratamientospresion: TIntegerField;
    qtratamientosboquilla: TWideStringField;
    qtratamientosventilador: TWideStringField;
    qtratamientosmostrar: TIntegerField;
    qtratamientosvariedad: TWideStringField;
    qtratamientosnum_boquillas: TIntegerField;
    qtratamientoslitros_hect: TIntegerField;
    qtratamientosdesc_boquilla: TWideStringField;
    qtratamientoslitros_minutos: TFloatField;
    qtratamientossuperficie: TFloatField;
    qtratamientosfecha_fin: TDateField;
    qtratamientoshora_inicio: TTimeField;
    qtratamientosfecha_inicio: TDateField;
    qtratamientosancho_calle: TFloatField;
    qrecomendacionesvariedad: TWideStringField;
    qrecomendacioneside: TIntegerField;
    qrecomendacionesidtb: TIntegerField;
    qtratamientosdetallecantidadprevista_mezcla: TFloatField;
    qtratamientosdetallecantidadprevista_materia: TFloatField;
    qrecomendacionescodpar: TWideStringField;
    qresponsables: TZReadOnlyQuery;
    dsqresponsables: TDataSource;
    qresponsablesnombre: TWideStringField;
    comboresponsables: TDBLookupComboBox;
    Label2: TLabel;
    qresponsablesnif: TWideStringField;
    qrecomendacionesdistancialineal: TIntegerField;
    qrecomendacionesancho_calle_1: TFloatField;
    qrecomendacionestipo: TWideStringField;
    qrecomendacioneslitroshectarea: TFloatField;
    qrecomendacionesancho_calle: TFloatField;
    qrecomendacionesventilador: TWideStringField;
    procedure BtGenerarClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }

  public
    { Public declarations }
          vrecomendacion,vempresa:integer;
  end;

var
  generartratamientos: Tgenerartratamientos;

implementation

{$R *.dfm}

procedure Tgenerartratamientos.BtGenerarClick(Sender: TObject);
var vid:integer;
begin
   qrecomendaciones.First;
   qidtratamiento.Close;
   qidtratamiento.Open;
   vid:=qidtratamientoid.asinteger;
   qtratamientos.Open;
   qtratamientosdetalle.Open;
   while not qrecomendaciones.Eof do
   begin
     qtratamientos.Append;
     qtratamientoside.value:=qrecomendacioneside.Asinteger;
     qtratamientosid.value:=vid;
     qtratamientosidcc.value:=qrecomendacionescodpar.Asstring;
     qtratamientosdesc_cc.value:=qrecomendacionesparcela.Asstring;
     qtratamientosfecha.value:=vfecha.Date;
     qtratamientosidrecomendacion.value:=qrecomendacionesid.Asinteger;
     qtratamientosobservaciones.value:=qrecomendacionesobservaciones.Asstring;
     qtratamientosidrecomendacion.value:=qrecomendacionesid.Asinteger;
     qtratamientosvelocidad.value:=qrecomendacionesvelocidad.Asfloat;
     qtratamientospresion.value:=qrecomendacionespresion.Asinteger;
     qtratamientosboquilla.value:=qrecomendacionesdesc_boquilla.Asstring;
     qtratamientosvariedad.value:=qrecomendacionesvariedad.Asstring;
     qtratamientosnum_boquillas.value:=qrecomendacionesnum_boquillas.Asinteger;
     qtratamientoslitros_hect.value:=trunc(qrecomendacioneslitroshectarea.AsFloat);
     qtratamientosdesc_boquilla.value:=qrecomendacionesdesc_boquilla.Asstring;
     qtratamientosnif_responsable.value:=qresponsablesnif.asstring;
     qtratamientosresponsable.value:=qresponsablesnombre.AsString;
     qtratamientoslitros_minutos.value:=qrecomendacioneslitros_minuto.Asfloat;
     qtratamientosancho_calle.value:=qrecomendacionesancho_calle_1.Asfloat;
     qtratamientossuperficie.value:=qrecomendacionessuperficie.Asfloat;
     qtratamientosventilador.value:=qrecomendacionesventilador.Asstring;
     qtratamientos.post;

     while not qrecomendacionesdetalle.Eof do
     begin
     qtratamientosdetalle.append;
     qtratamientosdetalleide.value:=qrecomendacionesdetalleide.Asinteger;
     qtratamientosdetalleidt.value:=vid;
     qtratamientosdetalleidaf.value:=qrecomendacionesdetalleidaf.Asinteger;
     qtratamientosdetalleidma.value:=qrecomendacionesdetalleidma.Asinteger;
     qtratamientosdetalledescripcion_af.value:=qrecomendacionesdetalledescripcion_af.Asstring;
     qtratamientosdetalledescripcion_ma.value:=qrecomendacionesdetalledescripcion_ma.Asstring;
     qtratamientosdetallecantidad_base.value:=qrecomendacionesdetallecantidad_base.Asfloat;
     qtratamientosdetalledosis.value:=qrecomendacionesdetalledosis.Asfloat;
     qtratamientosdetalleunidad_medida.value:=qrecomendacionesdetalleunidad_medida.Asstring;
     qtratamientosdetalleregistro.value:=qrecomendacionesdetalleregistro.Asstring;
     qtratamientosdetalleplazo.value:=qrecomendacionesdetalleplazo.Asinteger;
     qtratamientosdetallecantidadprevista_mezcla.value:=TRUNC(qrecomendacioneslitroshectarea.Asinteger*qrecomendacionessuperficie.AsFloat);
     qtratamientosdetallecantidadprevista_materia.value:=((qrecomendacioneslitros_hect.Asinteger*qrecomendacionessuperficie.AsFloat)/qrecomendacionesdetallecantidad_base.asfloat)*qrecomendacionesdetalledosis.asfloat;
     qtratamientosdetalleen_cuaderno.value:=1;
     qtratamientosdetalleorden.value:=qrecomendacionesdetalleorden.Asinteger;
     qtratamientosdetallefecha.value:=vfecha.Date;
     qtratamientosdetalle.post;
     qrecomendacionesdetalle.Next;
     end;
     vid:=vid+1;
     qrecomendacionesdetalle.First;
     qrecomendaciones.Next;
   end;
   showmessage('���� TRATAMIENTOS GENERADOS CORRECTAMENTE ����');
end;

procedure Tgenerartratamientos.FormShow(Sender: TObject);
begin
   vfecha.Date:=date();
   qrecomendaciones.Prepare;
   qrecomendaciones.ParamByName('EMPRESA').AsInteger:=vempresa;
   qrecomendaciones.ParamByName('RECOMENDACION').AsInteger:=vrecomendacion;
   qrecomendaciones.Open;
   qrecomendacionesdetalle.Prepare;
   qrecomendacionesdetalle.ParamByName('EMPRESA').AsInteger:=vempresa;
   qrecomendacionesdetalle.ParamByName('RECOMENDACION').AsInteger:=vrecomendacion;
   qrecomendacionesdetalle.Open;
   qresponsables.Open;
   comboresponsables.KeyValue:=qresponsablesnif.AsString;
end;

end.
