unit datosclientes;

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,
  System.SysUtils, System.Classes,datos, Data.DB;

type
  Tdmclientes = class(TDataModule)
    dtclientes: TFDQuery;
    qclientes: TFDQuery;
    dtclientesid: TIntegerField;
    dtclientesIdempresa: TIntegerField;
    dtclientesnif: TWideStringField;
    dtclientesnombre: TWideStringField;
    dtclientesdireccion: TWideStringField;
    dtclientespoblacion: TWideStringField;
    dtclientescodpost: TWideStringField;
    dtclientesprovincia: TWideStringField;
    dtclientestelefono: TWideStringField;
    dtclientesemail: TWideStringField;
    dtclientespersonacontacto: TWideStringField;
    dtclientescodigomercado: TIntegerField;
    dtclientesactivo: TIntegerField;
    qclientesid: TIntegerField;
    qclientesnombre_corto: TWideStringField;
    dsqclientes: TDataSource;
    dsclientes: TDataSource;
    qclientesIdempresa: TIntegerField;
    dtdestinos: TFDQuery;
    dsdestinos: TDataSource;
    dtarticulos: TFDQuery;
    dsarticulos: TDataSource;
    dtdestinosidcliente: TIntegerField;
    dtdestinosidempresa: TIntegerField;
    dtdestinoscodigo: TWideStringField;
    dtdestinosdescripcion: TWideStringField;
    dtdestinosactivo: TIntegerField;
    dspedidos: TDataSource;
    dtlinpedidos: TFDQuery;
    dspedidosdetalle: TDataSource;
    dtarticulosformato: TFDQuery;
    dsarticulosformato: TDataSource;
    dtarticulosformatoid: TWideStringField;
    dtarticulosformatoidempresa: TIntegerField;
    dtarticulosformatoidcliente: TIntegerField;
    dtarticulosformatodes_envase: TWideStringField;
    dtarticulosformatodesc_cliente: TWideStringField;
    dtarticulosformatoactivo: TIntegerField;
    dtarticulosformatoean: TWideStringField;
    dtarticulosformatomarca: TWideStringField;
    dtarticulosidempresa: TIntegerField;
    dtarticulosidcliente: TIntegerField;
    dtarticulosid: TWideStringField;
    dtarticulosdesc_cliente: TWideStringField;
    dtarticulosactivo: TIntegerField;
    dtclientesobservaciones: TWideStringField;
    dtclientesccontable: TIntegerField;
    qdestinos: TFDQuery;
    dsqdestinos: TDataSource;
    qarticulosx: TFDQuery;
    dsqarticulosx: TDataSource;
    qdestinosidcliente: TIntegerField;
    qdestinosidempresa: TIntegerField;
    qdestinoscodigo: TWideStringField;
    qdestinosdescripcion: TWideStringField;
    qdestinosseleccionado: TIntegerField;
    qdestinosactivo: TIntegerField;
    qpedidos: TFDQuery;
    dsqpedidos: TDataSource;
    qarticulosxidempresa: TIntegerField;
    qarticulosxidcliente: TIntegerField;
    qarticulosxid: TWideStringField;
    qarticulosxdesc_cliente: TWideStringField;
    qarticulosxactivo: TIntegerField;
    dtdestinosseleccionado: TIntegerField;
    dtdestinosdireccion: TWideStringField;
    dtdestinospoblacion: TWideStringField;
    dtdestinoscodpost: TWideStringField;
    dtdestinosprovincia: TWideStringField;
    dtarticulosformatoobservaciones: TWideStringField;
    dtarticulosformatoprecio_venta: TFloatField;
    dtclientesnombre_corto: TWideStringField;
    dtclientestelefono2: TWideStringField;
    dtclientesmovil: TWideStringField;
    dtclientesdescuento: TFloatField;
    qpresupuestos: TFDQuery;
    IntegerField1: TIntegerField;
    IntegerField2: TIntegerField;
    IntegerField3: TIntegerField;
    WideStringField1: TWideStringField;
    DateField1: TDateField;
    DateField2: TDateField;
    DateField3: TDateField;
    WideStringField2: TWideStringField;
    WideStringField3: TWideStringField;
    IntegerField4: TIntegerField;
    WideStringField4: TWideStringField;
    dsqpresupuestos: TDataSource;
    qalbaranes: TFDQuery;
    dsqalbaranes: TDataSource;
    qfacturas: TFDQuery;
    dsqfacturas: TDataSource;
    qnotas: TFDQuery;
    IntegerField17: TIntegerField;
    IntegerField18: TIntegerField;
    IntegerField19: TIntegerField;
    WideStringField17: TWideStringField;
    DateField13: TDateField;
    DateField14: TDateField;
    DateField15: TDateField;
    WideStringField18: TWideStringField;
    WideStringField19: TWideStringField;
    IntegerField20: TIntegerField;
    WideStringField20: TWideStringField;
    dsqnotas: TDataSource;
    dtpresupuestos: TFDQuery;
    IntegerField21: TIntegerField;
    IntegerField22: TIntegerField;
    IntegerField23: TIntegerField;
    WideStringField21: TWideStringField;
    DateField16: TDateField;
    DateField17: TDateField;
    DateField18: TDateField;
    WideStringField22: TWideStringField;
    WideStringField23: TWideStringField;
    IntegerField24: TIntegerField;
    WideStringField24: TWideStringField;
    dtlinpresupuestos: TFDQuery;
    IntegerField25: TIntegerField;
    IntegerField26: TIntegerField;
    IntegerField27: TIntegerField;
    FloatField1: TFloatField;
    WideStringField25: TWideStringField;
    WideStringField26: TWideStringField;
    WideStringField27: TWideStringField;
    WideStringField28: TWideStringField;
    FloatField2: TFloatField;
    WideStringField29: TWideStringField;
    IntegerField28: TIntegerField;
    IntegerField29: TIntegerField;
    WideStringField30: TWideStringField;
    WideStringField31: TWideStringField;
    WideStringField32: TWideStringField;
    IntegerField30: TIntegerField;
    dtalbaranes: TFDQuery;
    IntegerField31: TIntegerField;
    IntegerField32: TIntegerField;
    IntegerField33: TIntegerField;
    WideStringField33: TWideStringField;
    DateField19: TDateField;
    DateField20: TDateField;
    DateField21: TDateField;
    WideStringField34: TWideStringField;
    WideStringField35: TWideStringField;
    IntegerField34: TIntegerField;
    WideStringField36: TWideStringField;
    dtlinalbaranes: TFDQuery;
    IntegerField35: TIntegerField;
    IntegerField36: TIntegerField;
    IntegerField37: TIntegerField;
    FloatField3: TFloatField;
    WideStringField37: TWideStringField;
    WideStringField38: TWideStringField;
    WideStringField39: TWideStringField;
    WideStringField40: TWideStringField;
    FloatField4: TFloatField;
    WideStringField41: TWideStringField;
    IntegerField38: TIntegerField;
    IntegerField39: TIntegerField;
    WideStringField42: TWideStringField;
    WideStringField43: TWideStringField;
    WideStringField44: TWideStringField;
    IntegerField40: TIntegerField;
    dtfacturasproforma: TFDQuery;
    IntegerField41: TIntegerField;
    IntegerField42: TIntegerField;
    IntegerField43: TIntegerField;
    WideStringField45: TWideStringField;
    DateField22: TDateField;
    DateField23: TDateField;
    DateField24: TDateField;
    WideStringField46: TWideStringField;
    WideStringField47: TWideStringField;
    IntegerField44: TIntegerField;
    WideStringField48: TWideStringField;
    dtlinfacturasproforma: TFDQuery;
    IntegerField45: TIntegerField;
    IntegerField46: TIntegerField;
    IntegerField47: TIntegerField;
    FloatField5: TFloatField;
    WideStringField49: TWideStringField;
    WideStringField50: TWideStringField;
    WideStringField51: TWideStringField;
    WideStringField52: TWideStringField;
    FloatField6: TFloatField;
    WideStringField53: TWideStringField;
    IntegerField48: TIntegerField;
    IntegerField49: TIntegerField;
    WideStringField54: TWideStringField;
    WideStringField55: TWideStringField;
    WideStringField56: TWideStringField;
    IntegerField50: TIntegerField;
    dtlinfacturas: TFDQuery;
    IntegerField55: TIntegerField;
    IntegerField56: TIntegerField;
    IntegerField57: TIntegerField;
    FloatField7: TFloatField;
    WideStringField61: TWideStringField;
    WideStringField62: TWideStringField;
    WideStringField63: TWideStringField;
    WideStringField64: TWideStringField;
    FloatField8: TFloatField;
    WideStringField65: TWideStringField;
    IntegerField58: TIntegerField;
    IntegerField59: TIntegerField;
    WideStringField66: TWideStringField;
    WideStringField67: TWideStringField;
    WideStringField68: TWideStringField;
    IntegerField60: TIntegerField;
    dtnotas: TFDQuery;
    IntegerField61: TIntegerField;
    IntegerField62: TIntegerField;
    IntegerField63: TIntegerField;
    WideStringField69: TWideStringField;
    DateField28: TDateField;
    DateField29: TDateField;
    DateField30: TDateField;
    WideStringField70: TWideStringField;
    WideStringField71: TWideStringField;
    IntegerField64: TIntegerField;
    WideStringField72: TWideStringField;
    dtlinnotas: TFDQuery;
    IntegerField65: TIntegerField;
    IntegerField66: TIntegerField;
    IntegerField67: TIntegerField;
    FloatField9: TFloatField;
    WideStringField73: TWideStringField;
    WideStringField74: TWideStringField;
    WideStringField75: TWideStringField;
    WideStringField76: TWideStringField;
    FloatField10: TFloatField;
    WideStringField77: TWideStringField;
    IntegerField68: TIntegerField;
    IntegerField69: TIntegerField;
    WideStringField78: TWideStringField;
    WideStringField79: TWideStringField;
    WideStringField80: TWideStringField;
    IntegerField70: TIntegerField;
    dstpresupuestos: TDataSource;
    dslinpresupuestos: TDataSource;
    dstalbaranes: TDataSource;
    dslinalbaranes: TDataSource;
    dstfacturasproforma: TDataSource;
    dslinfacturasproforma: TDataSource;
    dstfacturas: TDataSource;
    dslinfacturas: TDataSource;
    dstnotas: TDataSource;
    dslinnotas: TDataSource;
    dtarticulosformatoidformato: TIntegerField;
    dtarticulosformatounidades: TFloatField;
    qpedidosid: TIntegerField;
    qpedidoside: TIntegerField;
    qpedidosidcliente: TIntegerField;
    qpedidosiddestino: TWideStringField;
    qpedidosfecha_pedido: TDateField;
    qpedidosfecha_carga: TDateField;
    qpedidosfecha_entrega: TDateField;
    qpedidoshora_carga: TTimeField;
    qpedidospedidocliente: TWideStringField;
    qpedidosabierto: TIntegerField;
    qpedidosobservaciones: TWideStringField;
    dtpedidos: TFDQuery;
    dtpedidosid: TIntegerField;
    dtpedidoside: TIntegerField;
    dtpedidosidcliente: TIntegerField;
    dtpedidosiddestino: TWideStringField;
    dtpedidosfecha_pedido: TDateField;
    dtpedidosfecha_carga: TDateField;
    dtpedidosfecha_entrega: TDateField;
    dtpedidoshora_carga: TTimeField;
    dtpedidospedidocliente: TWideStringField;
    dtpedidosabierto: TIntegerField;
    dtpedidosobservaciones: TWideStringField;
    qpedidosnombre: TWideStringField;
    qpedidosdescripcion: TWideStringField;
    dtlinpedidosid: TIntegerField;
    dtlinpedidoside: TIntegerField;
    dtlinpedidosidpedido: TIntegerField;
    dtlinpedidosidcliente: TIntegerField;
    dtlinpedidosidproductocli: TWideStringField;
    dtlinpedidosidenvase: TWideStringField;
    dtlinpedidosdesc_envase: TWideStringField;
    dtlinpedidosdesc_producto: TWideStringField;
    dtlinpedidoscantidad: TFloatField;
    dtlinpedidoscantidadservida: TFloatField;
    dtlinpedidospalets: TIntegerField;
    dtlinpedidosref: TWideStringField;
    dtlinpedidosean: TWideStringField;
    dtlinpedidosmarca: TWideStringField;
    dtlinpedidosobservaciones: TWideStringField;
    dtlinpedidosidcajapropia: TWideStringField;
    dtlinpedidos2: TFDQuery;
    dtlinpedidos2id: TIntegerField;
    dtlinpedidos2ide: TIntegerField;
    dtlinpedidos2idpedido: TIntegerField;
    dtlinpedidos2idcliente: TIntegerField;
    dtlinpedidos2idproductocli: TWideStringField;
    dtlinpedidos2idenvase: TWideStringField;
    dtlinpedidos2desc_envase: TWideStringField;
    dtlinpedidos2desc_producto: TWideStringField;
    dtlinpedidos2cantidad: TFloatField;
    dtlinpedidos2cantidadservida: TFloatField;
    dtlinpedidos2palets: TIntegerField;
    dtlinpedidos2ref: TWideStringField;
    dtlinpedidos2ean: TWideStringField;
    dtlinpedidos2marca: TWideStringField;
    dtlinpedidos2observaciones: TWideStringField;
    dtlinpedidos2idcajapropia: TWideStringField;
    dspedidosdestalle2: TDataSource;
    dtpedidosfecha_elavoracion: TDateField;
    qarticulosfinal: TFDQuery;
    qarticulosfinalidempresa: TIntegerField;
    qarticulosfinalid: TIntegerField;
    qarticulosfinalcodigo: TWideStringField;
    qarticulosfinaldescripcion: TWideStringField;
    qarticulosfinalactivo: TIntegerField;
    dsqarticulosfinal: TDataSource;
    dtclientespais: TWideStringField;
    dtdestinospais: TWideStringField;
    dtclientesidformapago: TIntegerField;
    qalbaranesserie: TWideStringField;
    qalbaranesid: TIntegerField;
    qalbaranesidempresa: TIntegerField;
    qalbaranesidcliente: TIntegerField;
    qalbaranesiddestino: TWideStringField;
    qalbaranesnif: TWideStringField;
    qalbaranesdireccion: TWideStringField;
    qalbaranespoblacion: TWideStringField;
    qalbaranesprovincia: TWideStringField;
    qalbaranescodpost: TWideStringField;
    qalbaranesfecha: TDateField;
    qalbaranesreferencia: TWideStringField;
    qalbaranestelefono: TWideStringField;
    qalbaranesnomcliente: TWideStringField;
    qalbaranespaiscliente: TWideStringField;
    qalbaranesnomdestino: TWideStringField;
    qalbaranesdirecciondestino: TWideStringField;
    qalbaranespoblaciondestino: TWideStringField;
    qalbaranescodpostdestino: TWideStringField;
    qalbaranesprovinciadestino: TWideStringField;
    qalbaranespaisdestino: TWideStringField;
    qalbaranesneto: TFloatField;
    qalbaranestotal: TFloatField;
    qalbaranesfacturado: TIntegerField;
    qalbaranesdocumento: TWideStringField;
    qalbaranesdescuento_lin: TFloatField;
    qalbaranesdescuento_com: TFloatField;
    qalbaranesdescuento_pp: TFloatField;
    qalbaranesdescuento_total: TFloatField;
    qalbaranestotaliva: TFloatField;
    qalbaranesobservaciones: TWideStringField;
    qalbaranesidfactura: TIntegerField;
    qalbaranesbultos: TFloatField;
    qalbaraneskilos: TFloatField;
    qalbaranesidformapago: TIntegerField;
    qfacturasserie: TWideStringField;
    qfacturasid: TIntegerField;
    qfacturasidempresa: TIntegerField;
    qfacturasidcliente: TIntegerField;
    qfacturasiddestino: TWideStringField;
    qfacturasnif: TWideStringField;
    qfacturasdireccion: TWideStringField;
    qfacturaspoblacion: TWideStringField;
    qfacturasprovincia: TWideStringField;
    qfacturascodpost: TWideStringField;
    qfacturasfecha: TDateField;
    qfacturasreferencia: TWideStringField;
    qfacturastelefono: TWideStringField;
    qfacturasnomcliente: TWideStringField;
    qfacturaspaiscliente: TWideStringField;
    qfacturasnomdestino: TWideStringField;
    qfacturasdirecciondestino: TWideStringField;
    qfacturaspoblaciondestino: TWideStringField;
    qfacturascodpostdestino: TWideStringField;
    qfacturasprovinciadestino: TWideStringField;
    qfacturaspaisdestino: TWideStringField;
    qfacturasneto: TFloatField;
    qfacturastotal: TFloatField;
    qfacturasdocumento: TWideStringField;
    qfacturasdescuento_lin: TFloatField;
    qfacturasdescuento_com: TFloatField;
    qfacturasdescuento_pp: TFloatField;
    qfacturasdescuento_total: TFloatField;
    qfacturastotaliva: TFloatField;
    qfacturasobservaciones: TWideStringField;
    qfacturasbultos: TFloatField;
    qfacturaskilos: TFloatField;
    qfacturasidformapago: TIntegerField;
    dtclientesexento_iva: TIntegerField;
    qfacturascobrado: TIntegerField;
    qarticulosfinalpeso: TFloatField;
    dtclientescomision: TFloatField;
    dtclientesidcp: TIntegerField;
    qarticulosfinalult_preciocompra: TFloatField;
    dtclientestipocliente: TWideStringField;
    dsqpedidosclientes: TDataSource;
    qpedidosclientes: TFDQuery;
    qpedidosclientesid: TIntegerField;
    qpedidosclientesidcliente: TIntegerField;
    qpedidosclientesiddestino: TWideStringField;
    qpedidosclientesfecha_pedido: TDateField;
    qpedidosclientesfecha_carga: TDateField;
    qpedidosclientesidpedido: TIntegerField;
    qpedidosclientesid_1: TIntegerField;
    qpedidosclientesidalbaran: TWideStringField;
    qpedidosclientesidexpedicion: TWideStringField;
    qpedidosclientespedidocliente: TWideStringField;
    dsqclientescalidad: TDataSource;
    qclientescalidad: TFDQuery;
    qclientescalidadid: TWideStringField;
    qclientescalidadidempresa: TIntegerField;
    qclientescalidadidcliente: TIntegerField;
    qclientescalidaddescripcion: TWideStringField;
    qclientescalidadactivo: TIntegerField;
    qarticulos: TFDQuery;
    dsqclientesacabados: TDataSource;
    qclientesacabados: TFDQuery;
    qclientesacabadosid: TWideStringField;
    qclientesacabadosidempresa: TIntegerField;
    qclientesacabadosidcliente: TIntegerField;
    qclientesacabadosdescripcion: TWideStringField;
    qclientesacabadosactivo: TIntegerField;
    qclientesacabadosean: TWideStringField;
    qclientesacabadosmarca: TWideStringField;
    qclientesacabadosobservaciones: TWideStringField;
    qarticulosidempresa: TIntegerField;
    qarticulosidcliente: TIntegerField;
    qarticulosid: TWideStringField;
    qarticulosdesc_cliente: TWideStringField;
    qarticulosactivo: TIntegerField;
    dsqarticulos: TDataSource;
    dtclientesusa_re: TIntegerField;
    dtclientesean: TWideStringField;
    dtdestinosean: TWideStringField;
    dtdestinosdep: TWideStringField;
    dtdestinosean2: TWideStringField;
    dtdestinoseanreceptor: TWideStringField;
    procedure dtclientesAfterPost(DataSet: TDataSet);
    procedure dtarticulosAfterOpen(DataSet: TDataSet);
    procedure dtarticulosAfterClose(DataSet: TDataSet);
    procedure dsclientesStateChange(Sender: TObject);
    procedure dsdestinosStateChange(Sender: TObject);
    procedure dsarticulosStateChange(Sender: TObject);
    procedure dsarticulosformatoStateChange(Sender: TObject);
    procedure qclientesBeforeOpen(DataSet: TDataSet);
    procedure qarticulosfinalBeforeOpen(DataSet: TDataSet);
    procedure dsarticulosfinalStateChange(Sender: TObject);
    procedure qpedidosAfterOpen(DataSet: TDataSet);
    procedure qpedidosAfterClose(DataSet: TDataSet);
    procedure dspedidosStateChange(Sender: TObject);
    procedure qpedidosBeforeOpen(DataSet: TDataSet);
    procedure dspedidosdetalleDataChange(Sender: TObject; Field: TField);
    procedure dspedidosdetalleStateChange(Sender: TObject);
    procedure dspedidosdestalle2StateChange(Sender: TObject);
    procedure dsqclientesDataChange(Sender: TObject; Field: TField);
    procedure dsqclientescalidadStateChange(Sender: TObject);
    procedure dsqarticulosStateChange(Sender: TObject);
    procedure dsqclientesacabadosStateChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    var   filtro:string;
          vertodos,vertodosmateriales:integer;

  end;

var
  dmclientes: Tdmclientes;

implementation

{%CLASSGROUP 'Vcl.Controls.TControl'}

uses fclientes,fpedidos;

{$R *.dfm}

procedure Tdmclientes.dsarticulosfinalStateChange(Sender: TObject);
begin
{    if dmclientes.dtarticulosfinal.State in [dsedit,dsinsert] then
    begin
       articulos.Panel14.Enabled:=true;
       articulos.btAnuevo.enabled:=false;
       articulos.btAborrar.enabled:=false;
       articulos.btAmodificar.enabled:=false;
       articulos.btAguardar.enabled:=true;
       articulos.btAcancelar.enabled:=true;
    end;
    if dmclientes.dtarticulosfinal.State in [dsbrowse] then
    begin
       articulos.Panel14.Enabled:=false;
       articulos.btAnuevo.enabled:=true;
       articulos.btAborrar.enabled:=true;
       articulos.btAmodificar.enabled:=true;
       articulos.btAguardar.enabled:=false;
       articulos.btAcancelar.enabled:=false;
    end;      }
end;

procedure Tdmclientes.dsarticulosformatoStateChange(Sender: TObject);
begin
    if dmclientes.dtarticulosformato.State in [dsedit,dsinsert] then
    begin
       clientes.btADnuevo.enabled:=false;
       clientes.btADborrar.enabled:=false;
       clientes.btADmodificar.enabled:=false;
       clientes.btADguardar.enabled:=true;
       clientes.btADcancelar.enabled:=true;
    end;
    if dmclientes.dtarticulosformato.State in [dsbrowse] then
    begin
       clientes.btADnuevo.enabled:=true;
       clientes.btADborrar.enabled:=true;
       clientes.btADmodificar.enabled:=true;
       clientes.btADguardar.enabled:=false;
       clientes.btADcancelar.enabled:=false;
    end;
end;

procedure Tdmclientes.dsarticulosStateChange(Sender: TObject);
begin
    if dmclientes.dtarticulos.State in [dsedit,dsinsert] then
    begin
       clientes.btAnuevo.enabled:=false;
       clientes.btAborrar.enabled:=false;
       clientes.btAmodificar.enabled:=false;
       clientes.btAguardar.enabled:=true;
       clientes.btAcancelar.enabled:=true;
    end;
    if dmclientes.dtarticulos.State in [dsbrowse] then
    begin
       clientes.btAnuevo.enabled:=true;
       clientes.btAborrar.enabled:=true;
       clientes.btAmodificar.enabled:=true;
       clientes.btAguardar.enabled:=false;
       clientes.btAcancelar.enabled:=false;
    end;
end;

procedure Tdmclientes.dsclientesStateChange(Sender: TObject);
begin
    if dmclientes.dtclientes.State in [dsedit,dsinsert] then
    begin
       clientes.Panel14.Enabled:=true;
       clientes.btCnuevo.enabled:=false;
       clientes.btCborrar.enabled:=false;
       clientes.btCmodificar.enabled:=false;
       clientes.btCguardar.enabled:=true;
       clientes.btCcancelar.enabled:=true;
    end;
    if dmclientes.dtclientes.State in [dsbrowse] then
    begin
       clientes.Panel14.Enabled:=false;
       clientes.btCnuevo.enabled:=true;
       clientes.btCborrar.enabled:=true;
       clientes.btCmodificar.enabled:=true;
       clientes.btCguardar.enabled:=false;
       clientes.btCcancelar.enabled:=false;
    end;

end;

procedure Tdmclientes.dsdestinosStateChange(Sender: TObject);
begin
    if dmclientes.dtdestinos.State in [dsedit,dsinsert] then
    begin
       clientes.Panel19.Enabled:=true;
       clientes.btDnuevo.enabled:=false;
       clientes.btDborrar.enabled:=false;
       clientes.btDmodificar.enabled:=false;
       clientes.btDguardar.enabled:=true;
       clientes.btDcancelar.enabled:=true;
    end;
    if dmclientes.dtdestinos.State in [dsbrowse] then
    begin
       clientes.Panel19.Enabled:=false;
       clientes.btDnuevo.enabled:=true;
       clientes.btDborrar.enabled:=true;
       clientes.btDmodificar.enabled:=true;
       clientes.btDguardar.enabled:=false;
       clientes.btDcancelar.enabled:=false;
    end;

end;

procedure Tdmclientes.dspedidosdestalle2StateChange(Sender: TObject);
begin
   if dmclientes.dtlinpedidos2.State in [dsedit,dsinsert] then
    begin
       pedidos.btPdnuevo.enabled:=false;
       pedidos.btPdborrar.enabled:=false;
       pedidos.btPdmodificar.enabled:=false;
//       pedidos.btPdguardar.enabled:=true;
//       pedidos.btPdcancelar.enabled:=true;
    end;
    if dmclientes.dtlinpedidos2.State in [dsbrowse] then
    begin
       pedidos.btPdnuevo.enabled:=true;
       pedidos.btPdborrar.enabled:=true;
       pedidos.btPdmodificar.enabled:=true;
//       pedidos.btPdguardar.enabled:=false;
//       pedidos.btPdcancelar.enabled:=false;
    end;

end;

procedure Tdmclientes.dspedidosdetalleDataChange(Sender: TObject;
  Field: TField);
begin
    if dmclientes.dtlinpedidosid.AsString<>'' then
    begin
        pedidos.qenvasados2.Close;
        pedidos.qenvasados2.SQL.Clear;
        pedidos.qenvasados2.SQL.Add('select * from ea_pesadas where iddestino in (select id from almacenes where final=1) and idpedido='+dmclientes.dtlinpedidosid.asstring+' ORDER BY `id`  DESC');
        pedidos.qenvasados2.open;
    end else
    begin
        pedidos.qenvasados2.SQL.Clear;
        pedidos.qenvasados2.SQL.Add('select * from ea_pesadas where iddestino in (select id from almacenes where final=1) and idpedido is not null ORDER BY `id`  DESC');
        pedidos.qenvasados2.open;

    end;
end;

procedure Tdmclientes.dspedidosdetalleStateChange(Sender: TObject);
begin
   if dmclientes.dtlinpedidos.State in [dsedit,dsinsert] then
    begin
       pedidos.btPdnuevo.enabled:=false;
       pedidos.btPdborrar.enabled:=false;
       pedidos.btPdmodificar.enabled:=false;
//       pedidos.btPdguardar.enabled:=true;
//       pedidos.btPdcancelar.enabled:=true;
    end;
    if dmclientes.dtlinpedidos.State in [dsbrowse] then
    begin
       pedidos.btPdnuevo.enabled:=true;
       pedidos.btPdborrar.enabled:=true;
       pedidos.btPdmodificar.enabled:=true;
//       pedidos.btPdguardar.enabled:=false;
//       pedidos.btPdcancelar.enabled:=false;
    end;

end;

procedure Tdmclientes.dspedidosStateChange(Sender: TObject);
begin
   pedidos := Tpedidos.Create(nil);
   if dmclientes.dtpedidos.State in [dsedit,dsinsert] then
    begin
       pedidos.Pdatospedidos.Enabled:=true;
       pedidos.btPnuevo.enabled:=false;
       pedidos.btPborrar.enabled:=false;
       pedidos.btPmodificar.enabled:=false;
       pedidos.btPguardar.enabled:=true;
       pedidos.btPcancelar.enabled:=true;
    end;
    if dmclientes.dtpedidos.State in [dsbrowse] then
    begin
       pedidos.Pdatospedidos.Enabled:=false;
       pedidos.btPnuevo.enabled:=true;
       pedidos.btPborrar.enabled:=true;
       pedidos.btPmodificar.enabled:=true;
       pedidos.btPguardar.enabled:=false;
       pedidos.btPcancelar.enabled:=false;
    end;
end;

procedure Tdmclientes.dsqarticulosStateChange(Sender: TObject);
begin
    if dmclientes.qarticulos.State in [dsedit,dsinsert] then
    begin
       clientes.btAnuevo.enabled:=false;
       clientes.btAborrar.enabled:=false;
       clientes.btAmodificar.enabled:=false;
       clientes.btAguardar.enabled:=true;
       clientes.btAcancelar.enabled:=true;
    end;
    if dmclientes.qarticulos.State in [dsbrowse] then
    begin
       clientes.btAnuevo.enabled:=true;
       clientes.btAborrar.enabled:=true;
       clientes.btAmodificar.enabled:=true;
       clientes.btAguardar.enabled:=false;
       clientes.btAcancelar.enabled:=false;
    end;
end;

procedure Tdmclientes.dsqclientesacabadosStateChange(Sender: TObject);
begin
    if dmclientes.qclientesacabados.State in [dsedit,dsinsert] then
    begin
       clientes.btCAnuevo.enabled:=false;
       clientes.btCAborrar.enabled:=false;
       clientes.btCAmodificar.enabled:=false;
       clientes.btCAguardar.enabled:=true;
       clientes.btCAcancelar.enabled:=true;
    end;
    if dmclientes.qclientesacabados.State in [dsbrowse] then
    begin
       clientes.btCAnuevo.enabled:=true;
       clientes.btCAborrar.enabled:=true;
       clientes.btCAmodificar.enabled:=true;
       clientes.btCAguardar.enabled:=false;
       clientes.btCAcancelar.enabled:=false;
    end;
end;

procedure Tdmclientes.dsqclientescalidadStateChange(Sender: TObject);
begin
    if dmclientes.qclientescalidad.State in [dsedit,dsinsert] then
    begin
       clientes.btClnuevo.enabled:=false;
       clientes.btClborrar.enabled:=false;
       clientes.btClmodificar.enabled:=false;
       clientes.btClguardar.enabled:=true;
       clientes.btClcancelar.enabled:=true;
    end;
    if dmclientes.qclientescalidad.State in [dsbrowse] then
    begin
       clientes.btClnuevo.enabled:=true;
       clientes.btClborrar.enabled:=true;
       clientes.btClmodificar.enabled:=true;
       clientes.btClguardar.enabled:=false;
       clientes.btClcancelar.enabled:=false;
    end;
end;

procedure Tdmclientes.dsqclientesDataChange(Sender: TObject; Field: TField);
begin
    if qclientes.RecordCount>0 then
    begin
        qpedidosclientes.Close;
        qpedidosclientes.SQL.clear;
        qpedidosclientes.SQL.Add('select p.pedidocliente,p.id,p.idcliente,p.iddestino,p.fecha_pedido,p.fecha_carga,pd.idpedido,pd.id,pd.idalbaran,pd.idexpedicion from pedidos p, pedidosdetalle pd where p.id=pd.idpedido and p.ide=pd.ide and p.ide='+qclientesidempresa.asstring+' and p.idcliente='+qclientesid.AsString);
        qpedidosclientes.SQL.Add('order by p.fecha_pedido desc,pd.id');
        qpedidosclientes.Open;
    end;
end;

procedure Tdmclientes.dtarticulosAfterClose(DataSet: TDataSet);
begin
    dtarticulosformato.Close;
end;

procedure Tdmclientes.dtarticulosAfterOpen(DataSet: TDataSet);
begin
   if dtarticulosformato.Active then dtarticulosformato.Refresh else dtarticulosformato.Open;
end;

procedure Tdmclientes.dtclientesAfterPost(DataSet: TDataSet);
begin
    qclientes.Refresh;
end;

procedure Tdmclientes.qarticulosfinalBeforeOpen(DataSet: TDataSet);
var filtrolocal:string;
begin
    if filtro<>'' then
    begin
       begin
         filtrolocal:=' where descripcion like('+''''+filtro+''''+') or codigo like('+''''+filtro+''''+') or id like('+''''+filtro+''''+')';
       end;
      if vertodosmateriales=0 then
      begin
          begin
            filtrolocal:=' where (descripcion like('+''''+filtro+''''+') or codigo like('+''''+filtro+''''+') or id like('+''''+filtro+''''+')';
            filtrolocal:=filtrolocal+') and activo=1 ';
          end;
      end;
    end;

    if filtro='' then
    begin
      filtrolocal:='';
      if vertodosmateriales=0 then
      begin
          filtrolocal:=' where activo=1 ';
      end;
    end;


    qarticulosfinal.SQL.Clear;
    qarticulosfinal.SQL.Add('select idempresa,id,codigo,descripcion,activo,ult_preciocompra,peso from articulosf ' + filtrolocal +' order by descripcion')

end;

procedure Tdmclientes.qclientesBeforeOpen(DataSet: TDataSet);
var filtrolocal:string;
begin
    dm.tempresa.Open;
    if filtro<>'' then
    begin
       begin
         filtrolocal:=' where nombre like('+''''+filtro+''''+') or nombre_corto like('+''''+filtro+''''+') or id like('+''''+filtro+''''+')';
       end;
      if vertodos=0 then
      begin
          begin
            filtrolocal:=' where (nombre like('+''''+filtro+''''+') or nombre_corto like('+''''+filtro+''''+') or id like('+''''+filtro+''''+')';
            filtrolocal:=filtrolocal+') and activo=1 ';
          end;
      end;
    end;

    if filtro='' then
    begin
      filtrolocal:='';
      if vertodos=0 then
      begin
          filtrolocal:=' where activo=1 ';
      end;
    end;


    qclientes.SQL.Clear;
    qclientes.SQL.Add('select id,nombre_corto,idempresa from clientes ' + filtrolocal +' order by nombre_corto')

end;

procedure Tdmclientes.qpedidosAfterClose(DataSet: TDataSet);
begin
   dtpedidos.close;
   dtlinpedidos.Close;
end;

procedure Tdmclientes.qpedidosAfterOpen(DataSet: TDataSet);
begin
   dtpedidos.Open;
   dtlinpedidos.Open;
end;

procedure Tdmclientes.qpedidosBeforeOpen(DataSet: TDataSet);
var filtrolocal:string;
begin
    if filtro<>'' then
    begin
      qpedidos.SQL.Clear;
      qpedidos.SQL.Add('select p.*,c.nombre,d.descripcion from pedidos p,clientes c,clientes_destinos d where (c.nombre like('+filtro+') or p.pedidocliente like ('+filtro+')) and p.idcliente=c.id and p.iddestino=d.codigo and c.id=d.idcliente order by fecha_pedido desc, id desc');
    end else
    begin
      qpedidos.SQL.Clear;
      qpedidos.SQL.Add('select p.*,c.nombre,d.descripcion from pedidos p,clientes c,clientes_destinos d where p.idcliente=c.id and p.iddestino=d.codigo and c.id=d.idcliente order by fecha_pedido desc, id desc');
    end;
end;

end.
