========================================================== PROCEDURE: TBASE.BtjornalesClick ========================================================== +++ [NEW] qaux.SQL.Add('update trabajadores set seleccionado=0 where seleccionado<>0'); +++ [NEW] nomfechadesde.Date := EncodeDate(anyo, mes, 1); +++ [NEW] nomlhdesde.Date := EncodeDate(anyo, mes, 1); +++ [NEW] nomlttdesde.Date := EncodeDate(anyo, mes, 1); +++ [NEW] pagnomfechadesde.Date := EncodeDate(anyo, mes, 1); +++ [NEW] vtactivo := 0; +++ [NEW] DBLookupComboBox12.KeyValue := Null; +++ [NEW] tbuscarnominas.Text := ''; +++ [NEW] filtrotrabajadores := ''; +++ [NEW] +++ [NEW] if not dm.tempresa.Active then +++ [NEW] dm.tempresa.Open; +++ [NEW] +++ [NEW] if not qgrupostrabajadores2.Active then +++ [NEW] qgrupostrabajadores2.Open; +++ [NEW] --- [OLD] filtro, fdesde, fhasta: string; --- [OLD] dm.DBagrigest.Disconnect; --- [OLD] filtro := ''; --- [OLD] qaux.SQL.Add('update trabajadores set seleccionado=0'); --- [OLD] nomfechadesde.Date := strtodate('01/' + floattostr(mes) + '/' + --- [OLD] floattostr(anyo)); --- [OLD] nomlhdesde.Date := strtodate('01/' + floattostr(mes) + '/' + --- [OLD] floattostr(anyo)); --- [OLD] nomlttdesde.Date := strtodate('01/' + floattostr(mes) + '/' + --- [OLD] floattostr(anyo)); --- [OLD] // nomantfechahasta.Date:=date; --- [OLD] // nomantfechadesde.Date:=strtodate('01/'+floattostr(mes)+'/'+floattostr(anyo)); --- [OLD] pagnomfechadesde.Date := strtodate('01/' + floattostr(mes) + '/' + --- [OLD] floattostr(anyo)); --- [OLD] decodedate(nomfechadesde.Date, anyo, mes, dia); --- [OLD] fdesde := floattostr(anyo) + '-' + floattostr(mes) + '-' + floattostr(dia); --- [OLD] filtro := ' where fecha>=' + '''' + fdesde + ''''; --- [OLD] decodedate(nomfechahasta.Date, anyo, mes, dia); --- [OLD] fhasta := floattostr(anyo) + '-' + floattostr(mes) + '-' + floattostr(dia); --- [OLD] filtro := filtro + ' and fecha<=' + '''' + fhasta + ''''; --- [OLD] filtro := filtro + ' order by trabajador asc,fecha desc'; --- [OLD] { dm.qnominasdetalle.Close; --- [OLD] dm.qnominasdetalle.SQL.Clear; --- [OLD] dm.qnominasdetalle.SQL.Add('select * from trabajo_diario '+filtro); --- [OLD] dm.qnominasdetalle.Open; --- [OLD] dm.qanticiposdetalle.Close; --- [OLD] dm.qanticiposdetalle.SQL.Clear; --- [OLD] dm.qanticiposdetalle.SQL.Add('select * from anticipos '+filtro); --- [OLD] dm.qanticiposdetalle.Open; --- [OLD] } --- [OLD] dm.tempresa.Open; --- [OLD] qempleados.Open; --- [OLD] dm.qtipohoras2.Open; --- [OLD] dm.qtrabajadores2.Open; --- [OLD] dm.qlistadohoras.Open; --- [OLD] tjornales.Open; --- [OLD] dm.tanticipos.Open; --- [OLD] qgrupostrabajadores2.Close; --- [OLD] qgrupostrabajadores2.Open; ========================================================== PROCEDURE: TBASE.btJborrarClick ========================================================== +++ [NEW] if not tjornales.Active then +++ [NEW] tjornales.Open; ========================================================== PROCEDURE: TBASE.btactualizarempleadosnominasClick ========================================================== +++ [NEW] filtro, filtro2, fdesde, fhasta, filtrogrupo, +++ [NEW] Screen.Cursor := crHourGlass; +++ [NEW] try +++ [NEW] fdesde := FormatDateTime('yyyy-mm-dd', nomfechadesde.Date); +++ [NEW] fhasta := FormatDateTime('yyyy-mm-dd', nomfechahasta.Date); +++ [NEW] qempleados.DisableControls; +++ [NEW] try +++ [NEW] qempleados.Close; +++ [NEW] qempleados.Open; +++ [NEW] finally +++ [NEW] qempleados.EnableControls; +++ [NEW] end; +++ [NEW] if vtactivo <> 0 then +++ [NEW] filtrogrupo := ' and idt in (select id from trabajadores where grupo=' + +++ [NEW] inttostr(vtactivo) + ')'; +++ [NEW] filtrotrabajador := ''; +++ [NEW] if Trim(tbuscarnominas.Text) <> '' then +++ [NEW] begin +++ [NEW] filtrogrupo := ''; +++ [NEW] filtrotrabajador := +++ [NEW] ' and idt in (select id from trabajadores where nombre like(''%' +++ [NEW] + Trim(tbuscarnominas.Text) + '%''))'; +++ [NEW] end; +++ [NEW] filtro := ' where fecha>=''' + fdesde + ''' and fecha<=''' + fhasta + '''' + filtrogrupo + filtrotrabajador; +++ [NEW] filtro := filtro + ' order by trabajador asc,fecha asc'; +++ [NEW] dm.qnominasdetalle.DisableControls; +++ [NEW] try +++ [NEW] dm.qnominasdetalle.Close; +++ [NEW] dm.qnominasdetalle.SQL.Clear; +++ [NEW] dm.qnominasdetalle.SQL.Add('select * from trabajo_diario ' + filtro); +++ [NEW] dm.qnominasdetalle.Open; +++ [NEW] finally +++ [NEW] dm.qnominasdetalle.EnableControls; +++ [NEW] end; +++ [NEW] dm.qanticiposdetalle.DisableControls; +++ [NEW] try +++ [NEW] dm.qanticiposdetalle.Close; +++ [NEW] dm.qanticiposdetalle.SQL.Clear; +++ [NEW] dm.qanticiposdetalle.SQL.Add('select * from anticipos ' + filtro); +++ [NEW] dm.qanticiposdetalle.Open; +++ [NEW] finally +++ [NEW] dm.qanticiposdetalle.EnableControls; +++ [NEW] end; +++ [NEW] dm.qaux.Close; +++ [NEW] dm.qaux.SQL.Clear; +++ [NEW] dm.qaux.SQL.Add('select count(distinct(idt)) from trabajo_diario ' + filtro); +++ [NEW] dm.qaux.Open; +++ [NEW] ltotalgrupo3.Caption := 'Total Empleados: ' + dm.qaux.Fields[0].AsString; +++ [NEW] // Solo actualizar consultas de la pestaña 5 (Listado por Horas) si está activa +++ [NEW] if PageNominas.ActivePage = Nominaspag5 then +++ [NEW] begin +++ [NEW] fdesde := FormatDateTime('yyyy-mm-dd', nomlhdesde.Date); +++ [NEW] fhasta := FormatDateTime('yyyy-mm-dd', nomlhhasta.Date); +++ [NEW] filtro := ' where codart in (select distinct(articulo) from trabajo_diario where fecha>=''' + +++ [NEW] fdesde + ''' and fecha<=''' + fhasta + ''') order by codart'; +++ [NEW] filtro2 := +++ [NEW] ' where id in (select distinct(idt) from trabajo_diario td,articulos a, parcelas p where td.parcela=p.codpar and p.seleccionado=1 and td.articulo=a.codart and a.seleccionado=1 and fecha>=''' + +++ [NEW] fdesde + ''' and fecha<=''' + fhasta + ''') order by nombre'; +++ [NEW] dm.qtipohoras2.Close; +++ [NEW] dm.qtipohoras2.SQL.Clear; +++ [NEW] dm.qtipohoras2.SQL.Add('select codart,seleccionado from articulos ' + filtro); +++ [NEW] dm.qtipohoras2.Open; +++ [NEW] +++ [NEW] dm.qtrabajadores2.Close; +++ [NEW] dm.qtrabajadores2.SQL.Clear; +++ [NEW] dm.qtrabajadores2.SQL.Add('select id,nombre,seleccionado from trabajadores ' +++ [NEW] + filtro2); +++ [NEW] dm.qtrabajadores2.Open; +++ [NEW] +++ [NEW] dm.qlistadohoras.Close; +++ [NEW] end; +++ [NEW] finally +++ [NEW] Screen.Cursor := crDefault; --- [OLD] anyo, mes, dia: word; --- [OLD] filtro, filtro2, filtro3, fdesde, fhasta, filtrogrupo, --- [OLD] idt, filtrojornales, tempdia, tempmes: string; --- [OLD] filtro := ''; --- [OLD] decodedate(nomfechadesde.Date, anyo, mes, dia); --- [OLD] tempdia := floattostr(dia); --- [OLD] if Length(tempdia) = 1 then --- [OLD] tempdia := '0' + tempdia; --- [OLD] tempmes := floattostr(mes); --- [OLD] if Length(tempmes) = 1 then --- [OLD] tempmes := '0' + tempmes; --- [OLD] fdesde := '''' + floattostr(anyo) + '-' + tempmes + '-' + tempdia + ''''; --- [OLD] decodedate(nomfechahasta.Date, anyo, mes, dia); --- [OLD] tempdia := floattostr(dia); --- [OLD] if Length(tempdia) = 1 then --- [OLD] tempdia := '0' + tempdia; --- [OLD] tempmes := floattostr(mes); --- [OLD] if Length(tempmes) = 1 then --- [OLD] tempmes := '0' + tempmes; --- [OLD] fhasta := '''' + floattostr(anyo) + '-' + tempmes + '-' + tempdia + ''''; --- [OLD] if qgrupostrabajadores2id.AsInteger > 0 then --- [OLD] begin --- [OLD] filtrogrupo := ' and idt in (select id from trabajadores where grupo=' + --- [OLD] inttostr(qgrupostrabajadores2id.AsInteger) + ')'; --- [OLD] end --- [OLD] else --- [OLD] if tbuscarnominas.Text <> '' then --- [OLD] begin --- [OLD] filtrogrupo := ''; --- [OLD] filtrotrabajador := --- [OLD] ' and idt in (select id from trabajadores where nombre like(' + '''' + '%' --- [OLD] + tbuscarnominas.Text + '%' + '''' + '))'; --- [OLD] filtro := ' where fecha>=' + fdesde; --- [OLD] filtro := filtro + ' and fecha<=' + fhasta; --- [OLD] filtro := filtro + filtrogrupo + filtrotrabajador; --- [OLD] { dm.qempleados.Close; --- [OLD] dm.qempleados.SQL.Clear; --- [OLD] dm.qempleados.SQL.Add('select distinct(idt),trabajador from trabajo_diario '); --- [OLD] dm.qempleados.sql.add(filtro); --- [OLD] dm.qempleados.sql.add(' order by trabajador asc'); --- [OLD] dm.qempleados.Open; --- [OLD] filtro:=''; --- [OLD] filtro:=' where fecha>='+fdesde; --- [OLD] filtro:=filtro+' and fecha<='+fhasta; } --- [OLD] filtro := filtro + ' order by trabajador asc,fecha asc'; --- [OLD] dm.qnominasdetalle.Close; --- [OLD] dm.qnominasdetalle.SQL.Clear; --- [OLD] dm.qnominasdetalle.SQL.Add('select * from trabajo_diario ' + filtro); --- [OLD] dm.qnominasdetalle.Open; --- [OLD] dm.qanticiposdetalle.Close; --- [OLD] dm.qanticiposdetalle.SQL.Clear; --- [OLD] dm.qanticiposdetalle.SQL.Add('select * from anticipos ' + filtro); --- [OLD] dm.qanticiposdetalle.Open; --- [OLD] dm.qaux.Close; --- [OLD] dm.qaux.SQL.Clear; --- [OLD] dm.qaux.SQL.Add('select count(distinct(idt)) from trabajo_diario ' + filtro); --- [OLD] dm.qaux.Open; --- [OLD] ltotalgrupo3.Caption := 'Total Empleados: ' + dm.qaux.Fields[0].AsString; --- [OLD] idt := qempleadosid.AsString; --- [OLD] if idt <> '' then --- [OLD] begin --- [OLD] filtrojornales := 'where idt=' + idt; --- [OLD] if Tanyo.ItemIndex <> 0 then --- [OLD] filtrojornales := filtrojornales + ' and year(fecha)=' + Tanyo.Text; --- [OLD] if TMES.ItemIndex <> 0 then --- [OLD] filtrojornales := filtrojornales + ' and month(fecha)=' + --- [OLD] inttostr(TMES.ItemIndex); --- [OLD] if TESTADO.ItemIndex <> 0 then --- [OLD] filtrojornales := filtrojornales + ' and estado=' + TESTADO.Text; --- [OLD] filtrojornales := filtrojornales + ' order by idt desc'; --- [OLD] qjornales.Close; --- [OLD] qjornales.SQL.Clear; --- [OLD] qjornales.SQL.Add('select * from trabajo_diario ' + filtrojornales); --- [OLD] qjornales.Open; --- [OLD] end; --- [OLD] filtro := ''; --- [OLD] filtro2 := ''; --- [OLD] filtro3 := ''; --- [OLD] decodedate(nomlhdesde.Date, anyo, mes, dia); --- [OLD] fdesde := '''' + floattostr(anyo) + '-' + floattostr(mes) + '-' + --- [OLD] floattostr(dia) + ''''; --- [OLD] filtro := ' where codart in (select distinct(articulo) from trabajo_diario where fecha>=' --- [OLD] + fdesde; --- [OLD] filtro2 := --- [OLD] ' where id in (select distinct(idt) from trabajo_diario td,articulos a, parcelas p where td.parcela=p.codpar and p.seleccionado=1 and td.articulo=a.codart and a.seleccionado=1 and fecha>=' --- [OLD] + fdesde; --- [OLD] filtro3 := --- [OLD] ' where td.parcela=p.codpar and p.seleccionado=1 and td.idt=t.id and td.articulo=a.codart and a.seleccionado=1 and t.seleccionado=1 and fecha>=' --- [OLD] + fdesde; --- [OLD] // filtro2:=' where id in (select distinct(idt) from trabajo_diario td,articulos a where td.articulo=a.codart and a.seleccionado=1 and fecha>='+''''+fdesde+''''; --- [OLD] // filtro3:=' where td.idt=t.id and td.articulo=a.codart and a.seleccionado=1 and t.seleccionado=1 and fecha>='+''''+fdesde+''''; --- [OLD] decodedate(nomlhhasta.Date, anyo, mes, dia); --- [OLD] fhasta := '''' + floattostr(anyo) + '-' + floattostr(mes) + '-' + --- [OLD] floattostr(dia) + ''''; --- [OLD] filtro := filtro + ' and fecha<=' + fhasta; --- [OLD] filtro := filtro + ') order by codart'; --- [OLD] filtro2 := filtro2 + ' and fecha<=' + fhasta; --- [OLD] filtro2 := filtro2 + ') order by nombre'; --- [OLD] filtro3 := filtro3 + ' and fecha<=' + fhasta; --- [OLD] filtro3 := filtro3 + --- [OLD] ' group by idt,trabajador,articulo order by articulo,trabajador'; --- [OLD] dm.qtipohoras2.Close; --- [OLD] dm.qtipohoras2.SQL.Clear; --- [OLD] dm.qtipohoras2.SQL.Add('select codart,seleccionado from articulos ' + filtro); --- [OLD] dm.qtipohoras2.Open; --- [OLD] dm.qtrabajadores2.Close; --- [OLD] dm.qtrabajadores2.SQL.Clear; --- [OLD] dm.qtrabajadores2.SQL.Add('select id,nombre,seleccionado from trabajadores ' --- [OLD] + filtro2); --- [OLD] dm.qtrabajadores2.Open; --- [OLD] dm.qlistadohoras.Close; --- [OLD] { dm.qlistadohoras.sql.clear; --- [OLD] dm.qlistadohoras.sql.add('select idt,trabajador,articulo,sum(qhoras) as horas,sum(qhoras*a.equivalenciahoras) as horas2,sum(qhoras*td.precio) as total,sum((qhoras/a.equivalenciahoras)*td.precio) as total2 from trabajo_diario td,articulos a,trabajadores t '+filtro3); --- [OLD] dm.qlistadohoras.Open; } --- [OLD] { --- [OLD] dmproduccion.qpartesdiarios.close; --- [OLD] dmproduccion.qentradas.close; --- [OLD] dmproduccion.qentradas2.close; --- [OLD] dmproduccion.qsalidas.close; --- [OLD] dmproduccion.qsalidas2.close; --- [OLD] dmproduccion.qpartesdiarios.Open; --- [OLD] dmproduccion.qentradas.Open; --- [OLD] dmproduccion.qentradas2.Open; --- [OLD] dmproduccion.qsalidas.Open; --- [OLD] dmproduccion.qsalidas2.Open; } ========================================================== PROCEDURE: TBASE.DBGrid4CellClick ========================================================== +++ [NEW] var +++ [NEW] LId: Integer; +++ [NEW] LNuevoEstado: string; +++ [NEW] LId := dm.qnominasdetalleid.AsInteger; +++ [NEW] LNuevoEstado := 'S' +++ [NEW] LNuevoEstado := 'C'; +++ [NEW] dm.DBagrigest.ExecuteDirect('UPDATE trabajo_diario SET estado = ' + QuotedStr(LNuevoEstado) + +++ [NEW] ' WHERE id = ' + IntToStr(LId)); +++ [NEW] dm.qnominasdetalle.Refresh; +++ [NEW] dm.qnominasdetalle.Locate('id', LId, [locaseinsensitive]); +++ [NEW] if tjornales.Active then +++ [NEW] tjornales.Refresh; +++ [NEW] --- [OLD] begin --- [OLD] tjornales.Locate('id', dm.qnominasdetalleid.AsString, --- [OLD] [locaseinsensitive]); --- [OLD] tjornales.edit; --- [OLD] tjornalesestado.Value := 'S'; --- [OLD] tjornales.post; --- [OLD] dm.qnominasdetalle.Refresh; --- [OLD] dm.qnominasdetalle.Locate('id', tjornalesid.AsString, --- [OLD] [locaseinsensitive]); --- [OLD] end --- [OLD] begin --- [OLD] tjornales.Locate('id', dm.qnominasdetalleid.AsString, --- [OLD] [locaseinsensitive]); --- [OLD] tjornales.edit; --- [OLD] tjornalesestado.Value := 'C'; --- [OLD] tjornales.post; --- [OLD] dm.qnominasdetalle.Refresh; --- [OLD] dm.qnominasdetalle.Locate('id', tjornalesid.AsString, --- [OLD] [locaseinsensitive]); --- [OLD] end; ========================================================== PROCEDURE: TBASE.btinsertarClick ========================================================== +++ [NEW] if not tjornales.Active then +++ [NEW] tjornales.Open; ========================================================== PROCEDURE: TBASE.bmodificarjornalesClick ========================================================== +++ [NEW] if not tjornales.Active then +++ [NEW] tjornales.Open; +++ [NEW] if not tjornales.Active then +++ [NEW] tjornales.Open; ========================================================== PROCEDURE: TBASE.btvalorarClick ========================================================== +++ [NEW] anyo, mes, dia: word; +++ [NEW] filtro, fdesde, fhasta, fdesde2, fhasta2, filtroUpdate: string; +++ [NEW] irpf, desempleo, formacion, contingencias, me, salariobase, anticipos, +++ [NEW] indemnizacion, penalizacion, embargos: real; +++ [NEW] if not dm.ttrabajadores.Active then +++ [NEW] dm.ttrabajadores.Open; +++ [NEW] if not dm.tempresa.Active then +++ [NEW] dm.tempresa.Open; +++ [NEW] salariobase := dm.tempresasalariobasedia.AsFloat; +++ [NEW] fdesde := FormatDateTime('yyyy-mm-dd', nomfechadesde.Date); +++ [NEW] fhasta := FormatDateTime('yyyy-mm-dd', nomfechahasta.Date); +++ [NEW] qempleados.Close; +++ [NEW] qempleados.Open; +++ [NEW] filtro := ' where estado<>''P'' and estado<>''S'' and fecha>=''' + fdesde + ''' and fecha<=''' + fhasta + ''''; +++ [NEW] filtro := filtro + ' and articulo in (select codart from articulos where facturar=0)' +++ [NEW] filtro := filtro + ' and articulo in (select codart from articulos where facturar=1)'; +++ [NEW] filtro := filtro + ' idt in (select id from trabajadores where regimen_cot=''GENERAL'')'; +++ [NEW] filtro := filtro + ' idt in (select id from trabajadores where regimen_cot=''AGRARIO'')'; +++ [NEW] filtro := filtro + ' idt in (select id from trabajadores where pagarporbanco=0)'; +++ [NEW] filtro := filtro + ' idt in (select id from trabajadores where pagarporbanco=1)'; +++ [NEW] filtroUpdate := filtro; +++ [NEW] dm.qaux1.SQL.Add('update trabajo_diario td set precio=(select precio from articulos a where a.codart=td.articulo) where estado<>''P'' and fecha>=''' + fdesde + ''' and fecha<=''' + fhasta + ''''); +++ [NEW] dm.qaux1.SQL.Add('update trabajo_diario td set total=precio*qhoras where estado<>''P'' and fecha>=''' + fdesde + ''' and fecha<=''' + fhasta + ''''); +++ [NEW] dm.qaux1.SQL.Add('select count(*) from calendario_laboral where festivo=0 and fecha>=''' + fdesde + ''' and fecha<=''' + fhasta + ''''); +++ [NEW] dm.qaux1.SQL.Add('select idt,trabajador,sum(qhoras) as horas,sum(total) as total from trabajo_diario ' + filtro); +++ [NEW] dm.tprenominas.DisableControls; +++ [NEW] dm.ttrabajadores.DisableControls; +++ [NEW] dm.qaux1.DisableControls; +++ [NEW] try +++ [NEW] while not dm.qaux1.Eof do +++ [NEW] dm.ttrabajadores.Locate('id', dm.qaux1.Fields[0].AsInteger, [locaseinsensitive]); +++ [NEW] me := dm.ttrabajadoresretencion_me.AsFloat; +++ [NEW] irpf := dm.ttrabajadoresirpf.AsFloat; +++ [NEW] desempleo := dm.ttrabajadoresdesempleo.AsFloat; +++ [NEW] formacion := dm.ttrabajadoresformacion.AsFloat; +++ [NEW] contingencias := dm.ttrabajadorescontingencias.AsFloat; +++ [NEW] if (dm.ttrabajadoresfechaalta.IsNull) or (nomfechadesde.Date >= dm.ttrabajadoresfechaalta.AsDateTime) then +++ [NEW] fdesde2 := fdesde +++ [NEW] fdesde2 := FormatDateTime('yyyy-mm-dd', dm.ttrabajadoresfechaalta.AsDateTime); +++ [NEW] if (dm.ttrabajadoresFECHABAJA.IsNull) or (dm.ttrabajadoresFECHABAJA.AsString = '') or (dm.ttrabajadoresFECHABAJA.AsDateTime >= nomfechahasta.Date) then +++ [NEW] fhasta2 := fhasta +++ [NEW] fhasta2 := FormatDateTime('yyyy-mm-dd', dm.ttrabajadoresFECHABAJA.AsDateTime); +++ [NEW] if (fdesde2 = fdesde) and (fhasta2 = fhasta) then +++ [NEW] diascomputables := diaslaborables +++ [NEW] begin +++ [NEW] dm.qaux3.Close; +++ [NEW] dm.qaux3.SQL.Clear; +++ [NEW] dm.qaux3.SQL.Add('select count(*) from calendario_laboral where festivo=0 and fecha>=''' + fdesde2 + ''' and fecha<=''' + fhasta2 + ''''); +++ [NEW] dm.qaux3.Open; +++ [NEW] diascomputables := dm.qaux3.Fields[0].AsInteger; +++ [NEW] end; +++ [NEW] dm.qaux3.Close; +++ [NEW] dm.qaux3.SQL.Clear; +++ [NEW] dm.qaux3.SQL.Add('select coalesce(sum(importe),0), coalesce(sum(indemnizacion),0), coalesce(sum(penalizacion),0), coalesce(sum(embargo),0) ' + +++ [NEW] 'from anticipos where idt=' + dm.qaux1.Fields[0].AsString + ' and fecha>=''' + fdesde + ''' and fecha<=''' + fhasta + ''''); +++ [NEW] dm.qaux3.Open; +++ [NEW] anticipos := dm.qaux3.Fields[0].AsFloat; +++ [NEW] indemnizacion := dm.qaux3.Fields[1].AsFloat; +++ [NEW] penalizacion := dm.qaux3.Fields[2].AsFloat; +++ [NEW] embargos := dm.qaux3.Fields[3].AsFloat; +++ [NEW] if diaslaborables <= diascomputables then +++ [NEW] maximodias := diaslaborables +++ [NEW] maximodias := diascomputables; +++ [NEW] if (dm.ttrabajadoressalariobasedia.AsFloat > 0) and +++ [NEW] (round(dm.qaux1.Fields[3].AsFloat / dm.ttrabajadoressalariobasedia.AsFloat) < maximodias) then +++ [NEW] diascalculo := Trunc(dm.qaux1.Fields[3].AsFloat / dm.ttrabajadoressalariobasedia.AsFloat) +++ [NEW] else +++ [NEW] diascalculo := maximodias; +++ [NEW] dm.tprenominas.Append; +++ [NEW] dm.tprenominasIDT.Value := dm.ttrabajadoresID.AsInteger; +++ [NEW] dm.tprenominasanyo.Value := anyo; +++ [NEW] dm.tprenominasmes.Value := inttostr(mes); +++ [NEW] dm.tprenominasnif.Value := dm.ttrabajadoresNIF.AsString; +++ [NEW] dm.tprenominasnombre.Value := dm.ttrabajadoresnombre.AsString; +++ [NEW] dm.tprenominasdireccion.Value := dm.ttrabajadoresdireccion.AsString; +++ [NEW] dm.tprenominascp.Value := dm.ttrabajadorescp.AsString; +++ [NEW] dm.tprenominaspoblacion.Value := dm.ttrabajadorespoblacion.AsString; +++ [NEW] dm.tprenominashoras.Value := dm.qaux1.Fields[2].AsFloat; +++ [NEW] dm.tprenominasfechaalta.Value := dm.ttrabajadoresfechaalta.AsDateTime; +++ [NEW] if dm.ttrabajadoresFECHABAJA.AsString <> '' then +++ [NEW] dm.tprenominasfechabaja.Value := dm.ttrabajadoresFECHABAJA.AsDateTime; +++ [NEW] if dm.tempresasalariobasedia.AsFloat > 0 then +++ [NEW] dm.tprenominasdiastrabajados.Value := Trunc(dm.qaux1.Fields[3].AsFloat / dm.tempresasalariobasedia.AsFloat) +++ [NEW] else +++ [NEW] dm.tprenominasdiastrabajados.Value := 0; +++ [NEW] dm.tprenominasdiasmaximo.Value := maximodias; +++ [NEW] dm.tprenominasdiascalculo.Value := diascalculo; +++ [NEW] dm.tprenominastotalbruto.Value := strtofloat(FormatFloat('0.00', dm.qaux1.Fields[3].AsFloat)); +++ [NEW] dm.tprenominasme.Value := me; +++ [NEW] dm.tprenominastotalme.Value := strtofloat(FormatFloat('0.00', (me / 100) * dm.tprenominastotalbruto.AsFloat)); +++ [NEW] dm.tprenominasIRPF.Value := irpf; +++ [NEW] dm.tprenominastotalirpf.Value := strtofloat(FormatFloat('0.00', (irpf / 100) * dm.tprenominastotalbruto.AsFloat)); +++ [NEW] dm.tprenominasdesempleo.Value := desempleo; +++ [NEW] dm.tprenominastotaldesempleo.Value := strtofloat(FormatFloat('0.00', (desempleo / 100) * (dm.tprenominastotalbruto.AsFloat - indemnizacion))); +++ [NEW] dm.tprenominasformacion.Value := formacion; +++ [NEW] dm.tprenominastotalformacion.Value := strtofloat(FormatFloat('0.00', (formacion / 100) * (dm.tprenominastotalbruto.AsFloat - indemnizacion))); +++ [NEW] dm.tprenominascontingencias.Value := contingencias; +++ [NEW] dm.tprenominastotalcontingencias.Value := strtofloat(FormatFloat('0.00', (contingencias / 100) * (dm.tprenominastotalbruto.AsFloat - indemnizacion))); +++ [NEW] dm.tprenominastotalneto.Value := strtofloat(FormatFloat('0.00', dm.qaux1.Fields[3].AsFloat - +++ [NEW] dm.tprenominastotalirpf.AsFloat - dm.tprenominastotaldesempleo.AsFloat - +++ [NEW] dm.tprenominastotalformacion.AsFloat - +++ [NEW] dm.tprenominastotalcontingencias.AsFloat - dm.tprenominastotalme.AsFloat - penalizacion - embargos)); +++ [NEW] dm.tprenominasanticipos.Value := strtofloat(FormatFloat('0.00', anticipos)); +++ [NEW] dm.tprenominasindemnizacion.Value := strtofloat(FormatFloat('0.00', indemnizacion)); +++ [NEW] dm.tprenominaspenalizacion.Value := strtofloat(FormatFloat('0.00', penalizacion)); +++ [NEW] dm.tprenominasembargos.Value := strtofloat(FormatFloat('0.00', embargos)); +++ [NEW] dm.tprenominasTOTALAPAGAR.Value := strtofloat(FormatFloat('0.00', dm.tprenominastotalneto.AsFloat - +++ [NEW] dm.tprenominasanticipos.AsFloat - dm.tprenominasembargos.AsFloat)); +++ [NEW] dm.tprenominascuentapago.Value := dm.ttrabajadoresCBIBAN.AsString + +++ [NEW] dm.ttrabajadoresCBBANCO.AsString + dm.ttrabajadoresCBOFICINA.AsString + +++ [NEW] dm.ttrabajadoresCBDC.AsString + dm.ttrabajadoresCBCC.AsString; +++ [NEW] dm.tprenominasfechapago.Value := Date; +++ [NEW] dm.tprenominasestado.Value := 'S'; +++ [NEW] dm.tprenominassalariobase.Value := salariobase; +++ [NEW] dm.tprenominasdiaslaborables.Value := diaslaborables; +++ [NEW] dm.tprenominascorrecto.Value := 0; +++ [NEW] dm.tprenominasfechainicio.Value := nomfechadesde.Date; +++ [NEW] dm.tprenominasfechafin.Value := nomfechahasta.Date; +++ [NEW] dm.tprenominas.post; +++ [NEW] dm.qaux3.Close; +++ [NEW] dm.qaux3.SQL.Clear; +++ [NEW] dm.qaux3.SQL.Add('update trabajo_diario set estado=''V'', control=' + dm.tprenominasid.AsString + +++ [NEW] ' ' + filtroUpdate + ' and idt=' + dm.ttrabajadoresID.AsString); +++ [NEW] dm.qaux3.ExecSQL; +++ [NEW] dm.qaux1.Next; +++ [NEW] finally +++ [NEW] dm.tprenominas.EnableControls; +++ [NEW] dm.ttrabajadores.EnableControls; +++ [NEW] dm.qaux1.EnableControls; --- [OLD] anyo, mes, dia, anyo2, mes2, dia2: word; --- [OLD] filtro, fdesde, fhasta, fdesde2, fhasta2, falta, iban, textor: string; --- [OLD] irpf, desempleo, formacion, contingencias,me, salariobase, anticipos, --- [OLD] indemnizacion, penalizacion,embargos: real; --- [OLD] dm.ttrabajadores.Open; --- [OLD] dm.tempresa.Open; --- [OLD] salariobase := dm.tempresasalariobasedia.AsFloat;; --- [OLD] ShowMessage('Registros en qempleados: ' + IntToStr(qempleados.RecordCount) + sLineBreak + 'IDs: ' + listadoIds); --- [OLD] filtro := ''; --- [OLD] fdesde := floattostr(anyo) + '-' + floattostr(mes) + '-' + floattostr(dia); --- [OLD] filtro := ' where estado<>' + '''' + 'P' + '''' + ' and estado<>' + '''' + 'S' --- [OLD] + '''' + ' and fecha>=' + '''' + fdesde + ''''; --- [OLD] decodedate(nomfechahasta.Date, anyo, mes, dia); --- [OLD] fhasta := floattostr(anyo) + '-' + floattostr(mes) + '-' + floattostr(dia); --- [OLD] filtro := filtro + ' and fecha<=' + '''' + fhasta + ''''; --- [OLD] filtro := filtro + --- [OLD] ' and articulo in (select codart from articulos where facturar=0)'; --- [OLD] end --- [OLD] filtro := filtro + --- [OLD] ' and articulo in (select codart from articulos where facturar=1)'; --- [OLD] begin --- [OLD] filtro := filtro + ' idt in (select id from trabajadores where regimen_cot=' --- [OLD] + '''' + 'GENERAL' + '''' + ')'; --- [OLD] begin --- [OLD] filtro := filtro + ' idt in (select id from trabajadores where regimen_cot=' --- [OLD] + '''' + 'AGRARIO' + '''' + ')'; --- [OLD] end; --- [OLD] begin --- [OLD] filtro := filtro + --- [OLD] ' idt in (select id from trabajadores where pagarporbanco=0)'; --- [OLD] end; --- [OLD] begin --- [OLD] filtro := filtro + --- [OLD] ' idt in (select id from trabajadores where pagarporbanco=1)'; --- [OLD] end; --- [OLD] dm.qaux1.SQL.Add --- [OLD] ('update trabajo_diario td set precio=(select precio from articulos a where a.codart=td.articulo) where estado<>' --- [OLD] + '''' + 'P' + ''''); --- [OLD] dm.qaux1.SQL.Add --- [OLD] ('update trabajo_diario td set total=precio*qhoras where estado<>' + '''' + --- [OLD] 'P' + ''''); --- [OLD] dm.qaux1.SQL.Add --- [OLD] ('select count(*) from calendario_laboral where festivo=0 and fecha>=' + --- [OLD] '''' + fdesde + '''' + ' and fecha<=' + '''' + fhasta + ''''); --- [OLD] dm.qaux1.SQL.Add --- [OLD] ('select idt,trabajador,sum(qhoras) as horas,sum(total) as total from trabajo_diario ' --- [OLD] + filtro); --- [OLD] // dm.qaux1.SQL.Add('where articulo in (select codart from articulos where facturar=1) and estado='+''''+'C'+''''); --- [OLD] // dm.qaux1.SQL.Add(' and fecha>='+''''+fdesde+''''+' and fecha<='+''''+fhasta+''''+' group by idt order by idt'); --- [OLD] begin --- [OLD] while not(dm.qaux1.Eof) do --- [OLD] begin --- [OLD] dm.ttrabajadores.Locate('id', dm.qaux1.Fields[0].AsInteger, --- [OLD] [locaseinsensitive]); --- [OLD] me:=dm.ttrabajadoresretencion_me.AsFloat; --- [OLD] irpf := dm.ttrabajadoresirpf.AsFloat; --- [OLD] desempleo := dm.ttrabajadoresdesempleo.AsFloat; --- [OLD] formacion := dm.ttrabajadoresformacion.AsFloat; --- [OLD] contingencias := dm.ttrabajadorescontingencias.AsFloat; --- [OLD] if nomfechadesde.Date >= dm.ttrabajadoresfechaalta.AsDateTime then --- [OLD] decodedate(nomfechadesde.Date, anyo2, mes2, dia2); --- [OLD] fdesde2 := floattostr(anyo2) + '-' + floattostr(mes2) + '-' + --- [OLD] floattostr(dia2); --- [OLD] end --- [OLD] else --- [OLD] begin --- [OLD] decodedate(dm.ttrabajadoresfechaalta.AsDateTime, anyo2, mes2, dia2); --- [OLD] fdesde2 := floattostr(anyo2) + '-' + floattostr(mes2) + '-' + --- [OLD] floattostr(dia2); --- [OLD] if dm.ttrabajadoresFECHABAJA.AsString = '' then --- [OLD] begin --- [OLD] fhasta2 := fhasta; --- [OLD] end --- [OLD] else --- [OLD] begin --- [OLD] decodedate(dm.ttrabajadoresFECHABAJA.AsDateTime, anyo2, mes2, dia2); --- [OLD] fhasta2 := floattostr(anyo2) + '-' + floattostr(mes2) + '-' + --- [OLD] floattostr(dia2); --- [OLD] end; --- [OLD] dm.qaux3.Close; --- [OLD] dm.qaux3.SQL.Clear; --- [OLD] dm.qaux3.SQL.Add --- [OLD] ('select count(*) from calendario_laboral where festivo=0 and fecha>=' + --- [OLD] '''' + fdesde2 + '''' + ' and fecha<=' + '''' + fhasta2 + ''''); --- [OLD] dm.qaux3.Open; --- [OLD] diascomputables := dm.qaux3.Fields[0].AsInteger; --- [OLD] dm.qaux3.Close; --- [OLD] dm.qaux3.SQL.Clear; --- [OLD] dm.qaux3.SQL.Add('select sum(importe) from anticipos where idt=' + --- [OLD] dm.qaux1.Fields[0].AsString + ' and fecha>=' + '''' + fdesde + '''' + --- [OLD] ' and fecha<=' + '''' + fhasta + ''''); --- [OLD] dm.qaux3.Open; --- [OLD] anticipos := dm.qaux3.Fields[0].AsFloat; --- [OLD] dm.qaux3.Close; --- [OLD] dm.qaux3.SQL.Clear; --- [OLD] dm.qaux3.SQL.Add('select sum(indemnizacion) from anticipos where idt=' + --- [OLD] dm.qaux1.Fields[0].AsString + ' and fecha>=' + '''' + fdesde + '''' + --- [OLD] ' and fecha<=' + '''' + fhasta + ''''); --- [OLD] dm.qaux3.Open; --- [OLD] indemnizacion := dm.qaux3.Fields[0].AsFloat; --- [OLD] dm.qaux3.Close; --- [OLD] dm.qaux3.SQL.Clear; --- [OLD] dm.qaux3.SQL.Add('select sum(penalizacion) from anticipos where idt=' + --- [OLD] dm.qaux1.Fields[0].AsString + ' and fecha>=' + '''' + fdesde + '''' + --- [OLD] ' and fecha<=' + '''' + fhasta + ''''); --- [OLD] dm.qaux3.Open; --- [OLD] penalizacion := dm.qaux3.Fields[0].AsFloat; --- [OLD] dm.qaux3.Close; --- [OLD] dm.qaux3.SQL.Clear; --- [OLD] dm.qaux3.SQL.Add('select sum(embargo) from anticipos where idt=' + --- [OLD] dm.qaux1.Fields[0].AsString + ' and fecha>=' + '''' + fdesde + '''' + --- [OLD] ' and fecha<=' + '''' + fhasta + ''''); --- [OLD] dm.qaux3.Open; --- [OLD] embargos := dm.qaux3.Fields[0].AsFloat; --- [OLD] if diaslaborables <= diascomputables then --- [OLD] maximodias := diaslaborables --- [OLD] else --- [OLD] maximodias := diascomputables; --- [OLD] //if Trunc(dm.qaux1.Fields[3].AsFloat / dm.tempresasalariobasedia.AsFloat) < maximodias --- [OLD] if round(dm.qaux1.Fields[3].AsFloat / dm.ttrabajadoressalariobasedia.AsFloat) < maximodias --- [OLD] then --- [OLD] diascalculo := Trunc(dm.qaux1.Fields[3].AsFloat / --- [OLD] //diascalculo := round(dm.qaux1.Fields[3].AsFloat / --- [OLD] //dm.tempresasalariobasedia.AsFloat) --- [OLD] dm.ttrabajadoressalariobasedia.AsFloat) --- [OLD] else --- [OLD] diascalculo := maximodias; --- [OLD] dm.tprenominas.Append; --- [OLD] dm.tprenominasIDT.Value := dm.ttrabajadoresID.AsInteger; --- [OLD] dm.tprenominasanyo.Value := anyo; --- [OLD] dm.tprenominasmes.Value := floattostr(mes); --- [OLD] dm.tprenominasnif.Value := dm.ttrabajadoresNIF.AsString; --- [OLD] dm.tprenominasnombre.Value := dm.ttrabajadoresnombre.AsString; --- [OLD] dm.tprenominasdireccion.Value := dm.ttrabajadoresdireccion.AsString; --- [OLD] dm.tprenominascp.Value := dm.ttrabajadorescp.AsString; --- [OLD] dm.tprenominaspoblacion.Value := dm.ttrabajadorespoblacion.AsString; --- [OLD] dm.tprenominashoras.Value := dm.qaux1.Fields[2].AsFloat; --- [OLD] dm.tprenominasfechaalta.Value := dm.ttrabajadoresfechaalta.AsDateTime; --- [OLD] if dm.ttrabajadoresFECHABAJA.AsString <> '' then --- [OLD] begin --- [OLD] dm.tprenominasfechabaja.Value := dm.ttrabajadoresFECHABAJA.AsDateTime; --- [OLD] // strtodate(fhasta2); --- [OLD] end; --- [OLD] dm.tprenominasdiastrabajados.Value := --- [OLD] Trunc(dm.qaux1.Fields[3].AsFloat / dm.tempresasalariobasedia.AsFloat); --- [OLD] dm.tprenominasdiasmaximo.Value := maximodias; --- [OLD] dm.tprenominasdiascalculo.Value := diascalculo; --- [OLD] dm.tprenominastotalbruto.Value := --- [OLD] strtofloat(FormatFloat('0.00', dm.qaux1.Fields[3].AsFloat)); --- [OLD] dm.tprenominasme.Value := me; --- [OLD] dm.tprenominastotalme.Value := --- [OLD] strtofloat(FormatFloat('0.00', --- [OLD] (me / 100) * dm.tprenominastotalbruto.AsFloat)); --- [OLD] dm.tprenominasIRPF.Value := irpf; --- [OLD] dm.tprenominastotalirpf.Value := --- [OLD] strtofloat(FormatFloat('0.00', --- [OLD] (irpf / 100) * dm.tprenominastotalbruto.AsFloat)); --- [OLD] // (salariobase*diascalculo); --- [OLD] dm.tprenominasdesempleo.Value := desempleo; --- [OLD] dm.tprenominastotaldesempleo.Value := --- [OLD] strtofloat(FormatFloat('0.00', (desempleo / 100) * --- [OLD] (dm.tprenominastotalbruto.AsFloat - indemnizacion))); --- [OLD] // (salariobase*diascalculo); --- [OLD] dm.tprenominasformacion.Value := formacion; --- [OLD] dm.tprenominastotalformacion.Value := --- [OLD] strtofloat(FormatFloat('0.00', (formacion / 100) * --- [OLD] (dm.tprenominastotalbruto.AsFloat - indemnizacion))); --- [OLD] // (salariobase*diascalculo); --- [OLD] dm.tprenominascontingencias.Value := contingencias; --- [OLD] dm.tprenominastotalcontingencias.Value := --- [OLD] strtofloat(FormatFloat('0.00', (contingencias / 100) * --- [OLD] (dm.tprenominastotalbruto.AsFloat - indemnizacion))); --- [OLD] // (salariobase*diascalculo); --- [OLD] dm.tprenominastotalneto.Value := --- [OLD] strtofloat(FormatFloat('0.00', dm.qaux1.Fields[3].AsFloat - --- [OLD] dm.tprenominastotalirpf.AsFloat - dm.tprenominastotaldesempleo.AsFloat - --- [OLD] dm.tprenominastotalformacion.AsFloat - --- [OLD] dm.tprenominastotalcontingencias.AsFloat-dm.tprenominastotalme.AsFloat - penalizacion- embargos)); --- [OLD] dm.tprenominasanticipos.Value := --- [OLD] strtofloat(FormatFloat('0.00', anticipos)); --- [OLD] dm.tprenominasindemnizacion.Value := --- [OLD] strtofloat(FormatFloat('0.00', indemnizacion)); --- [OLD] dm.tprenominaspenalizacion.Value := --- [OLD] strtofloat(FormatFloat('0.00', penalizacion)); --- [OLD] dm.tprenominasembargos.Value := --- [OLD] strtofloat(FormatFloat('0.00', embargos)); --- [OLD] dm.tprenominasTOTALAPAGAR.Value := --- [OLD] strtofloat(FormatFloat('0.00', dm.tprenominastotalneto.AsFloat - --- [OLD] dm.tprenominasanticipos.AsFloat -dm.tprenominasembargos.asfloat )); --- [OLD] dm.tprenominascuentapago.Value := dm.ttrabajadoresCBIBAN.AsString + --- [OLD] dm.ttrabajadoresCBBANCO.AsString + dm.ttrabajadoresCBOFICINA.AsString + --- [OLD] dm.ttrabajadoresCBDC.AsString + dm.ttrabajadoresCBCC.AsString; --- [OLD] dm.tprenominasfechapago.Value := Date; --- [OLD] dm.tprenominasestado.Value := 'S'; --- [OLD] dm.tprenominassalariobase.Value := salariobase; --- [OLD] dm.tprenominasdiaslaborables.Value := diaslaborables; --- [OLD] dm.tprenominascorrecto.Value := 0; --- [OLD] dm.tprenominasfechainicio.Value := nomfechadesde.Date; --- [OLD] dm.tprenominasfechafin.Value := nomfechahasta.Date; --- [OLD] dm.tprenominas.post; --- [OLD] condiciones := 0; --- [OLD] if CheckBox2.Checked then --- [OLD] begin --- [OLD] condiciones := condiciones + 1; --- [OLD] end; --- [OLD] if CheckBox3.Checked then --- [OLD] begin --- [OLD] condiciones := condiciones + 1; --- [OLD] end; --- [OLD] if CheckBox4.Checked then --- [OLD] begin --- [OLD] condiciones := condiciones + 1; --- [OLD] end; --- [OLD] if CheckBox5.Checked then --- [OLD] begin --- [OLD] condiciones := condiciones + 1; --- [OLD] end; --- [OLD] filtro := ''; --- [OLD] decodedate(nomfechadesde.Date, anyo, mes, dia); --- [OLD] fdesde := floattostr(anyo) + '-' + floattostr(mes) + '-' + --- [OLD] floattostr(dia); --- [OLD] filtro := ' where estado<>' + '''' + 'S' + '''' + ' and estado<>' + '''' + --- [OLD] 'P' + '''' + ' and fecha>=' + '''' + fdesde + ''''; --- [OLD] decodedate(nomfechahasta.Date, anyo, mes, dia); --- [OLD] fhasta := floattostr(anyo) + '-' + floattostr(mes) + '-' + --- [OLD] floattostr(dia); --- [OLD] filtro := filtro + ' and fecha<=' + '''' + fhasta + ''''; --- [OLD] if CheckBox6.Checked then --- [OLD] begin --- [OLD] filtro := filtro + --- [OLD] ' and articulo in (select codart from articulos where facturar=0)'; --- [OLD] end --- [OLD] else --- [OLD] filtro := filtro + --- [OLD] ' and articulo in (select codart from articulos where facturar=1)'; --- [OLD] if condiciones >= 1 then --- [OLD] filtro := filtro + ' and (('; --- [OLD] if CheckBox2.Checked then --- [OLD] begin --- [OLD] filtro := filtro + --- [OLD] ' idt in (select id from trabajadores where regimen_cot=' + '''' + --- [OLD] 'GENERAL' + '''' + ')'; --- [OLD] condiciones := condiciones - 1; --- [OLD] if condiciones = 0 then --- [OLD] filtro := filtro + ' ))' --- [OLD] filtro := filtro + ') or ('; --- [OLD] end; --- [OLD] if CheckBox3.Checked then --- [OLD] begin --- [OLD] filtro := filtro + --- [OLD] ' idt in (select id from trabajadores where regimen_cot=' + '''' + --- [OLD] 'AGRARIO' + '''' + ')'; --- [OLD] condiciones := condiciones - 1; --- [OLD] if condiciones = 0 then --- [OLD] filtro := filtro + ' ))' --- [OLD] filtro := filtro + ') or ('; --- [OLD] end; --- [OLD] if CheckBox4.Checked then --- [OLD] begin --- [OLD] filtro := filtro + --- [OLD] ' idt in (select id from trabajadores where pagarporbanco=0)'; --- [OLD] condiciones := condiciones - 1; --- [OLD] if condiciones = 0 then --- [OLD] filtro := filtro + ' ))' --- [OLD] filtro := filtro + ') or ('; --- [OLD] end; --- [OLD] if CheckBox5.Checked then --- [OLD] begin --- [OLD] filtro := filtro + --- [OLD] ' idt in (select id from trabajadores where pagarporbanco=1)'; --- [OLD] condiciones := condiciones - 1; --- [OLD] if condiciones = 0 then --- [OLD] filtro := filtro + ' ))' --- [OLD] filtro := filtro + ') or ('; --- [OLD] end; --- [OLD] dm.qaux3.Close; --- [OLD] dm.qaux3.SQL.Clear; --- [OLD] dm.qaux3.SQL.Add('update trabajo_diario set estado=' + '''' + 'V' + '''' + --- [OLD] ',control=' + dm.tprenominasid.AsString + ' ' + filtro + ' and idt=' + --- [OLD] dm.ttrabajadoresID.AsString); --- [OLD] dm.qaux3.ExecSQL; --- [OLD] dm.qaux1.Next; --- [OLD] end; ========================================================== PROCEDURE: TBASE.FormShow ========================================================== +++ [NEW] end; +++ [NEW] if Application.Terminated then Exit; +++ [NEW] dm.DBagrigest.Disconnect; +++ [NEW] dm.tempresa.Open; +++ [NEW] Timer2.Interval := dm.tempresatavisostock.AsInteger * 60000; +++ [NEW] if tlimitado = '0' then +++ [NEW] begin +++ [NEW] tfechajornal.Date := Date; +++ [NEW] fechaanticipo.Date := Date; +++ [NEW] end; +++ [NEW] if tlimitado = '1' then +++ [NEW] begin +++ [NEW] tfechajornal.Date := Date; +++ [NEW] fechaanticipo.Date := Date; +++ [NEW] btproduccion.Visible := true; +++ [NEW] Btjornales.Visible := true; +++ [NEW] Btjornales.Caption := 'Partes de Trabajo'; +++ [NEW] BtEmpleados.Visible := false; +++ [NEW] btempresa.Visible := false; +++ [NEW] btAgenda.Visible := false; +++ [NEW] btexpediciones.Visible := false; +++ [NEW] bttrazabilidad.Visible := false; +++ [NEW] Panel117.Visible := false; +++ [NEW] end; +++ [NEW] if tlimitado = '2' then +++ [NEW] begin +++ [NEW] tfechajornal.Date := Date; +++ [NEW] fechaanticipo.Date := Date; +++ [NEW] btproduccion.Visible := true; +++ [NEW] Btjornales.Visible := false; +++ [NEW] Btjornales.Caption := 'Partes de Trabajo'; +++ [NEW] BtEmpleados.Visible := false; +++ [NEW] btempresa.Visible := true; +++ [NEW] btAgenda.Visible := false; +++ [NEW] btexpediciones.Visible := false; +++ [NEW] bttrazabilidad.Visible := true; +++ [NEW] Panel117.Visible := false; +++ [NEW] Menu.Items[3].Visible := false; +++ [NEW] Menu.Items[1].Visible := false; +++ [NEW] end; +++ [NEW] if tlimitado = '3' then +++ [NEW] begin +++ [NEW] pmenu.Visible:=false; +++ [NEW] Menu.Items[0].Visible := false; +++ [NEW] Menu.Items[1].Visible := false; +++ [NEW] Menu.Items[2].Visible := false; +++ [NEW] Menu.Items[3].Visible := false; +++ [NEW] Menu.Items[4].Visible := false; +++ [NEW] Menu.Items[5].Visible := false; +++ [NEW] // Menu.Items[6].Visible := false; +++ [NEW] Menu.Items[6].Items[0].Visible:=false; +++ [NEW] Menu.Items[6].Items[1].Visible:=false; +++ [NEW] Menu.Items[6].Items[2].Visible:=false; +++ [NEW] Menu.Items[6].Items[3].Visible:=false; +++ [NEW] Menu.Items[6].Items[4].Visible:=false; +++ [NEW] Menu.Items[6].Items[5].Visible:=false; +++ [NEW] Menu.Items[6].Items[6].Visible:=false; +++ [NEW] Menu.Items[7].Visible := false; +++ [NEW] Menu.Items[8].Visible := false; +++ [NEW] Menu.Items[9].Visible := false; --- [OLD] dm.DBagrigest.Disconnect; --- [OLD] dm.tempresa.Open; --- [OLD] Timer2.Interval := dm.tempresatavisostock.AsInteger * 60000; --- [OLD] if tlimitado = '0' then --- [OLD] begin --- [OLD] tfechajornal.Date := Date; --- [OLD] fechaanticipo.Date := Date; --- [OLD] end; --- [OLD] if tlimitado = '1' then --- [OLD] begin --- [OLD] tfechajornal.Date := Date; --- [OLD] fechaanticipo.Date := Date; --- [OLD] btproduccion.Visible := true; --- [OLD] Btjornales.Visible := true; --- [OLD] Btjornales.Caption := 'Partes de Trabajo'; --- [OLD] BtEmpleados.Visible := false; --- [OLD] btempresa.Visible := false; --- [OLD] btAgenda.Visible := false; --- [OLD] btexpediciones.Visible := false; --- [OLD] bttrazabilidad.Visible := false; --- [OLD] Panel117.Visible := false; --- [OLD] end; --- [OLD] if tlimitado = '2' then --- [OLD] begin --- [OLD] tfechajornal.Date := Date; --- [OLD] fechaanticipo.Date := Date; --- [OLD] btproduccion.Visible := true; --- [OLD] Btjornales.Visible := false; --- [OLD] Btjornales.Caption := 'Partes de Trabajo'; --- [OLD] BtEmpleados.Visible := false; --- [OLD] btempresa.Visible := true; --- [OLD] btAgenda.Visible := false; --- [OLD] btexpediciones.Visible := false; --- [OLD] bttrazabilidad.Visible := true; --- [OLD] Panel117.Visible := false; --- [OLD] Menu.Items[3].Visible := false; --- [OLD] Menu.Items[1].Visible := false; --- [OLD] end; --- [OLD] if tlimitado = '3' then --- [OLD] begin --- [OLD] pmenu.Visible:=false; --- [OLD] Menu.Items[0].Visible := false; --- [OLD] Menu.Items[1].Visible := false; --- [OLD] Menu.Items[2].Visible := false; --- [OLD] Menu.Items[3].Visible := false; --- [OLD] Menu.Items[4].Visible := false; --- [OLD] Menu.Items[5].Visible := false; --- [OLD] // Menu.Items[6].Visible := false; --- [OLD] Menu.Items[6].Items[0].Visible:=false; --- [OLD] Menu.Items[6].Items[1].Visible:=false; --- [OLD] Menu.Items[6].Items[2].Visible:=false; --- [OLD] Menu.Items[6].Items[3].Visible:=false; --- [OLD] Menu.Items[6].Items[4].Visible:=false; --- [OLD] Menu.Items[6].Items[5].Visible:=false; --- [OLD] Menu.Items[6].Items[6].Visible:=false; --- [OLD] Menu.Items[7].Visible := false; --- [OLD] Menu.Items[8].Visible := false; --- [OLD] Menu.Items[9].Visible := false; --- [OLD] --- [OLD] end; ========================================================== PROCEDURE: TBASE.btJcancelarClick ========================================================== +++ [NEW] if tjornales.Active and (tjornales.State in [dsedit, dsinsert]) then --- [OLD] if tjornales.State in [dsedit, dsinsert] then ========================================================== PROCEDURE: TBASE.btJimprimirClick ========================================================== +++ [NEW] var +++ [NEW] LSortFields: string; +++ [NEW] LSortType: ZAbstractRODataset.TSortType; +++ [NEW] LPlantillaGeneral, LPlantillaGrid, LRutaBase: string; +++ [NEW] if not dm.qnominasdetalle.Active or dm.qnominasdetalle.IsEmpty then +++ [NEW] begin +++ [NEW] ShowMessage('No hay datos de jornales para imprimir.'); +++ [NEW] Exit; +++ [NEW] end; +++ [NEW] +++ [NEW] Screen.Cursor := crHourGlass; +++ [NEW] try +++ [NEW] LRutaBase := 'c:\agrigest\informes\'; +++ [NEW] LPlantillaGeneral := LRutaBase + 'JORNALESGENERAL.fr3'; +++ [NEW] LPlantillaGrid := LRutaBase + 'listado_jornales_grid.fr3'; +++ [NEW] +++ [NEW] // Si la plantilla del grid no se encuentra en informes, buscar en la carpeta del ejecutable +++ [NEW] if not FileExists(LPlantillaGrid) then +++ [NEW] begin +++ [NEW] if FileExists(ExtractFilePath(Application.ExeName) + 'listado_jornales_grid.fr3') then +++ [NEW] LPlantillaGrid := ExtractFilePath(Application.ExeName) + 'listado_jornales_grid.fr3'; +++ [NEW] end; +++ [NEW] +++ [NEW] if not FileExists(LPlantillaGeneral) then +++ [NEW] begin +++ [NEW] if FileExists(ExtractFilePath(Application.ExeName) + 'JORNALESGENERAL.fr3') then +++ [NEW] LPlantillaGeneral := ExtractFilePath(Application.ExeName) + 'JORNALESGENERAL.fr3'; +++ [NEW] end; +++ [NEW] +++ [NEW] if not FileExists(LPlantillaGeneral) then +++ [NEW] begin +++ [NEW] ShowMessage('No se encuentra la plantilla: ' + LPlantillaGeneral); +++ [NEW] Exit; +++ [NEW] end; +++ [NEW] +++ [NEW] // Guardar ordenación actual que tiene el usuario en DBGrid4 +++ [NEW] LSortFields := dm.qnominasdetalle.SortedFields; +++ [NEW] LSortType := dm.qnominasdetalle.SortType; +++ [NEW] +++ [NEW] informedb.DataSource := dm.dsqnominasdetalle; +++ [NEW] +++ [NEW] // 1. Primer informe: JORNALESGENERAL (agrupado por trabajador/idt) +++ [NEW] dm.qnominasdetalle.SortedFields := 'trabajador,fecha,parcela'; +++ [NEW] dm.qnominasdetalle.SortType := stascending; +++ [NEW] dm.qnominasdetalle.First; +++ [NEW] +++ [NEW] informes.Report.Clear; +++ [NEW] informes.LoadFromFile(LPlantillaGeneral); +++ [NEW] informes.Variables.Variables['TITULO'] := QUOTEDSTR('INFORME DE JORNALES'); +++ [NEW] Screen.Cursor := crDefault; +++ [NEW] informes.ShowReport(); // Muestra el primero (se detiene hasta que el usuario lo cierre) +++ [NEW] +++ [NEW] // 2. Segundo informe: Listado según DBGrid4 mostrado a continuación (tras cerrar el primero) +++ [NEW] if FileExists(LPlantillaGrid) then +++ [NEW] begin +++ [NEW] Screen.Cursor := crHourGlass; +++ [NEW] // Restaurar el orden que tenía el usuario en el grid +++ [NEW] if LSortFields <> '' then +++ [NEW] begin +++ [NEW] dm.qnominasdetalle.SortedFields := LSortFields; +++ [NEW] dm.qnominasdetalle.SortType := LSortType; +++ [NEW] end; +++ [NEW] dm.qnominasdetalle.First; +++ [NEW] +++ [NEW] informes.Report.Clear; +++ [NEW] informes.LoadFromFile(LPlantillaGrid); +++ [NEW] informes.Variables.Variables['v_fechadesde'] := QUOTEDSTR(DateToStr(nomfechadesde.Date)); +++ [NEW] informes.Variables.Variables['v_fechahasta'] := QUOTEDSTR(DateToStr(nomfechahasta.Date)); +++ [NEW] informes.Variables.Variables['TITULO'] := QUOTEDSTR('LISTADO GENERAL DE JORNALES'); +++ [NEW] Screen.Cursor := crDefault; +++ [NEW] informes.ShowReport(); // Muestra el segundo informe tras cerrar el primero +++ [NEW] end; +++ [NEW] +++ [NEW] informes.Clear; +++ [NEW] +++ [NEW] // Restaurar ordenación original del dataset +++ [NEW] if LSortFields <> '' then +++ [NEW] begin +++ [NEW] dm.qnominasdetalle.SortedFields := LSortFields; +++ [NEW] dm.qnominasdetalle.SortType := LSortType; +++ [NEW] end; +++ [NEW] finally +++ [NEW] Screen.Cursor := crDefault; +++ [NEW] end; --- [OLD] informedb.DataSource := dm.dsqnominasdetalle; --- [OLD] dm.qnominasdetalle.SortedFields := 'trabajador,fecha,parcela'; --- [OLD] dm.qnominasdetalle.SortType := stascending; --- [OLD] informes.Report.Clear; --- [OLD] informes.LoadFromFile('c:\agrigest\informes\JORNALESGENERAL.fr3'); --- [OLD] // informes.Report.FileName:=dm.qnominasdetalle.asstring; --- [OLD] informes.ShowReport(); --- [OLD] informes.Clear ========================================================== PROCEDURE: TBASE.tbuscarnominasChange ========================================================== +++ [NEW] filtrotrabajadores := Trim(tbuscarnominas.Text); --- [OLD] filtrotrabajadores := '%' + tbuscarnominas.Text + '%'; --- [OLD] btactualizarempleadosnominas.Click ========================================================== PROCEDURE: TBASE.btJmodificarClick ========================================================== +++ [NEW] if not tjornales.Active then +++ [NEW] tjornales.Open; ========================================================== PROCEDURE: TBASE.DBGrid19DblClick ========================================================== +++ [NEW] var +++ [NEW] LId: Integer; +++ [NEW] LNuevoEstado: string; +++ [NEW] LId := dm.qnominasproduccionid.AsInteger; +++ [NEW] LNuevoEstado := 'S' +++ [NEW] LNuevoEstado := 'C'; +++ [NEW] dm.DBagrigest.ExecuteDirect('UPDATE trabajo_diario SET estado = ' + QuotedStr(LNuevoEstado) + +++ [NEW] ' WHERE id = ' + IntToStr(LId)); +++ [NEW] dm.qnominasproduccion.Refresh; +++ [NEW] dm.qnominasproduccion.Locate('id', LId, [locaseinsensitive]); +++ [NEW] if tjornales.Active then +++ [NEW] tjornales.Refresh; +++ [NEW] --- [OLD] begin --- [OLD] tjornales.Locate('id', dm.qnominasproduccionid.AsString, --- [OLD] [locaseinsensitive]); --- [OLD] tjornales.edit; --- [OLD] tjornalesestado.Value := 'S'; --- [OLD] tjornales.post; --- [OLD] dm.qnominasproduccion.Refresh; --- [OLD] dm.qnominasproduccion.Locate('id', tjornalesid.AsString, --- [OLD] [locaseinsensitive]); --- [OLD] end --- [OLD] begin --- [OLD] tjornales.Locate('id', dm.qnominasproduccionid.AsString, --- [OLD] [locaseinsensitive]); --- [OLD] tjornales.edit; --- [OLD] tjornalesestado.Value := 'C'; --- [OLD] tjornales.post; --- [OLD] dm.qnominasproduccion.Refresh; --- [OLD] dm.qnominasproduccion.Locate('id', tjornalesid.AsString, --- [OLD] [locaseinsensitive]); --- [OLD] end; ========================================================== PROCEDURE: TBASE.bborrarjornalesClick ========================================================== +++ [NEW] if not tjornales.Active then +++ [NEW] tjornales.Open; ========================================================== PROCEDURE: TBASE.Button6Click ========================================================== +++ [NEW] var +++ [NEW] fdesde, fhasta, sqlDel: string; +++ [NEW] if not dm.qnominasdetalle.IsEmpty then +++ [NEW] if MessageDlg('¿Está seguro de que desea borrar todos los jornales mostrados en el periodo actual?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then +++ [NEW] begin +++ [NEW] fdesde := FormatDateTime('yyyy-mm-dd', nomfechadesde.Date); +++ [NEW] fhasta := FormatDateTime('yyyy-mm-dd', nomfechahasta.Date); +++ [NEW] sqlDel := 'delete from trabajo_diario where fecha>=''' + fdesde + ''' and fecha<=''' + fhasta + ''''; +++ [NEW] if vtactivo <> 0 then +++ [NEW] sqlDel := sqlDel + ' and idt in (select id from trabajadores where grupo=' + IntToStr(vtactivo) + ')'; +++ [NEW] if Trim(tbuscarnominas.Text) <> '' then +++ [NEW] sqlDel := sqlDel + ' and idt in (select id from trabajadores where nombre like ''%' + Trim(tbuscarnominas.Text) + '%'')'; +++ [NEW] +++ [NEW] qaux.Close; +++ [NEW] qaux.SQL.Clear; +++ [NEW] qaux.SQL.Add(sqlDel); +++ [NEW] qaux.ExecSQL; +++ [NEW] btactualizarempleadosnominas.Click; +++ [NEW] end; --- [OLD] while not dm.qnominasdetalle.Eof do --- [OLD] tjornales.Locate('id', dm.qnominasdetalleid.AsInteger, --- [OLD] [locaseinsensitive, lopartialkey]); --- [OLD] tjornales.Delete; --- [OLD] dm.qnominasdetalle.Next; --- [OLD] dm.qnominasdetalle.Refresh; ========================================================== PROCEDURE: TBASE.Button11Click ========================================================== +++ [NEW] dm.tnominasdetalle.Open; +++ [NEW] dm.tnominasdetalle.DisableControls; +++ [NEW] dm.tprenominas.DisableControls; +++ [NEW] try +++ [NEW] dm.qaux3.SQL.Add('update trabajo_diario set estado=' + '''' + 'P' + '''' + +++ [NEW] ',control=-' + dm.tnominasdetalle.Fields[0].AsString + +++ [NEW] +++ [NEW] finally +++ [NEW] dm.tnominasdetalle.EnableControls; +++ [NEW] dm.tprenominas.EnableControls; +++ [NEW] +++ [NEW] dm.qnominas.Refresh; +++ [NEW] dm.tprenominas.Refresh; --- [OLD] if dm.qaux1.RecordCount = 1 then --- [OLD] begin --- [OLD] dm.tnominasdetalle.Open; --- [OLD] dm.tnominasdetalle.Append; --- [OLD] dm.tnominasdetalle.Fields[1].Value := dm.qnominasID.AsInteger; --- [OLD] dm.tnominasdetalle.Fields[2].Value := dm.tempresaid.AsInteger; --- [OLD] dm.tnominasdetalle.Fields[3].Value := dm.qaux1.Fields[1].AsInteger; --- [OLD] dm.tnominasdetalle.Fields[4].Value := dm.qaux1.Fields[2].AsInteger; --- [OLD] dm.tnominasdetalle.Fields[5].Value := dm.qaux1.Fields[3].AsInteger; --- [OLD] dm.tnominasdetalle.Fields[6].Value := dm.qaux1.Fields[4].AsString; --- [OLD] dm.tnominasdetalle.Fields[7].Value := dm.qaux1.Fields[5].AsString; --- [OLD] dm.tnominasdetalle.Fields[8].Value := dm.qaux1.Fields[6].AsString; --- [OLD] dm.tnominasdetalle.Fields[9].Value := dm.qaux1.Fields[7].AsString; --- [OLD] dm.tnominasdetalle.Fields[10].Value := dm.qaux1.Fields[8].AsString; --- [OLD] dm.tnominasdetalle.Fields[11].Value := dm.qaux1.Fields[9].AsFloat; --- [OLD] dm.tnominasdetalle.Fields[12].Value := dm.qaux1.Fields[10].AsDateTime; --- [OLD] dm.tnominasdetalle.Fields[13].Value := dm.qaux1.Fields[11].AsDateTime; --- [OLD] dm.tnominasdetalle.Fields[14].Value := dm.qaux1.Fields[12].AsInteger; --- [OLD] dm.tnominasdetalle.Fields[15].Value := dm.qaux1.Fields[13].AsInteger; --- [OLD] dm.tnominasdetalle.Fields[16].Value := dm.qaux1.Fields[14].AsInteger; --- [OLD] dm.tnominasdetalle.Fields[17].Value := dm.qaux1.Fields[15].AsFloat; --- [OLD] dm.tnominasdetalle.Fields[18].Value := dm.qaux1.Fields[16].AsFloat; --- [OLD] dm.tnominasdetalle.Fields[19].Value := dm.qaux1.Fields[17].AsFloat; --- [OLD] dm.tnominasdetalle.Fields[20].Value := dm.qaux1.Fields[18].AsFloat; --- [OLD] dm.tnominasdetalle.Fields[21].Value := dm.qaux1.Fields[19].AsFloat; --- [OLD] dm.tnominasdetalle.Fields[22].Value := dm.qaux1.Fields[20].AsFloat; --- [OLD] dm.tnominasdetalle.Fields[23].Value := dm.qaux1.Fields[21].AsFloat; --- [OLD] dm.tnominasdetalle.Fields[24].Value := dm.qaux1.Fields[22].AsFloat; --- [OLD] dm.tnominasdetalle.Fields[25].Value := dm.qaux1.Fields[23].AsFloat; --- [OLD] dm.tnominasdetalle.Fields[26].Value := dm.qaux1.Fields[24].AsFloat; --- [OLD] dm.tnominasdetalle.Fields[27].Value := dm.qaux1.Fields[25].AsFloat; --- [OLD] dm.tnominasdetalle.Fields[28].Value := dm.qaux1.Fields[26].AsFloat; --- [OLD] dm.tnominasdetalle.Fields[29].Value := dm.qaux1.Fields[27].AsFloat; --- [OLD] dm.tnominasdetalle.Fields[30].Value := dm.qaux1.Fields[28].AsFloat; --- [OLD] dm.tnominasdetalle.Fields[31].Value := dm.qaux1.Fields[29].AsString; --- [OLD] dm.tnominasdetalle.Fields[32].Value := dm.qaux1.Fields[30].AsDateTime; --- [OLD] dm.tnominasdetalle.Fields[33].Value := dm.qaux1.Fields[31].AsString; --- [OLD] dm.tnominasdetalle.Fields[34].Value := dm.qaux1.Fields[32].AsFloat; --- [OLD] dm.tnominasdetalle.Fields[35].Value := dm.qaux1.Fields[33].AsInteger; --- [OLD] dm.tnominasdetalle.Fields[36].Value := dm.qaux1.Fields[34].AsDateTime; --- [OLD] dm.tnominasdetalle.Fields[37].Value := dm.qaux1.Fields[35].AsDateTime; --- [OLD] dm.tnominasdetalle.Fields[38].Value := dm.qaux1.Fields[36].AsInteger; --- [OLD] dm.tnominasdetalle.post; --- [OLD] dm.qaux3.Close; --- [OLD] dm.qaux3.SQL.Clear; --- [OLD] dm.qaux3.SQL.Add('update trabajo_diario set estado=' + '''' + 'P' + '''' + --- [OLD] ',control=-' + dm.tnominasdetalle.Fields[0].AsString + ' where control=' --- [OLD] + dm.qaux1.Fields[0].AsString); --- [OLD] dm.qaux3.ExecSQL; --- [OLD] dm.qaux3.Close; --- [OLD] dm.qaux3.SQL.Clear; --- [OLD] dm.qaux3.SQL.Add('delete from prenominas where id=' + dm.qaux1.Fields[0] --- [OLD] .AsString); --- [OLD] dm.qaux3.ExecSQL; --- [OLD] dm.qnominas.Refresh; --- [OLD] dm.tprenominas.Refresh; --- [OLD] if dm.qaux1.RecordCount > 1 then --- [OLD] begin --- [OLD] dm.tnominasdetalle.Open; --- [OLD] dm.qaux3.SQL.Add('update trabajo_diario set estado=' + '''' + 'P' + '''' --- [OLD] + ',control=-' + dm.tnominasdetalle.Fields[0].AsString + --- [OLD] dm.tprenominas.Refresh; --- [OLD] end; ========================================================== PROCEDURE: TBASE.dsqtrabajadoresDataChange ========================================================== +++ [NEW] if PDEmpleados.Visible then +++ [NEW] idt := qempleadosid.AsString; +++ [NEW] templeados.Locate('id', idt, [locaseinsensitive]); +++ [NEW] if (qempleados.RecordCount > 0) and (TabJornales.Visible) then +++ [NEW] // templeados.Open; +++ [NEW] Label46.Caption := qempleadosnombre.AsString; +++ [NEW] Label10.Caption := qempleadosnombre.AsString; +++ [NEW] filtrojornales := 'where idt=' + idt; +++ [NEW] if Tanyo.ItemIndex <> 0 then +++ [NEW] filtrojornales := filtrojornales + ' and year(fecha)=' + Tanyo.Text; +++ [NEW] if TMES.ItemIndex <> 0 then +++ [NEW] filtrojornales := filtrojornales + ' and month(fecha)=' + +++ [NEW] inttostr(TMES.ItemIndex); +++ [NEW] if TESTADO.ItemIndex <> 0 then +++ [NEW] filtrojornales := filtrojornales + ' and estado=' + TESTADO.Text; +++ [NEW] filtrojornales := filtrojornales + ' order by fecha desc'; +++ [NEW] qjornales.Close; +++ [NEW] qjornales.SQL.Clear; +++ [NEW] qjornales.SQL.Add('select * from trabajo_diario ' + filtrojornales); +++ [NEW] qjornales.Open; +++ [NEW] filtroanticipos := 'where idt=' + idt; +++ [NEW] if tanyo2.ItemIndex <> 0 then +++ [NEW] filtroanticipos := filtroanticipos + ' and year(fecha)=' + tanyo2.Text; +++ [NEW] if tmes2.ItemIndex <> 0 then +++ [NEW] filtroanticipos := filtroanticipos + ' and month(fecha)=' + +++ [NEW] inttostr(tmes2.ItemIndex); +++ [NEW] if testado2.ItemIndex <> 0 then +++ [NEW] filtroanticipos := filtroanticipos + ' and estado=' + testado2.Text; +++ [NEW] filtroanticipos := filtroanticipos + ' order by fecha desc'; +++ [NEW] dm.qanticipos.Close; +++ [NEW] dm.qanticipos.SQL.Clear; +++ [NEW] dm.qanticipos.SQL.Add('select * from anticipos ' + filtroanticipos); +++ [NEW] dm.qanticipos.Open; +++ [NEW] end; --- [OLD] { paneldocumentosempleados.Visible:=false; --- [OLD] btedocver.Caption:='Ver Doc.'; --- [OLD] if (templeados.State=dsinsert) or (templeados.State=dsedit) then templeados.Post; --- [OLD] if qempleados.RecordCount>0 then --- [OLD] temp_fotos.Close; --- [OLD] temp_fotos.Filtered:=false; --- [OLD] temp_fotos.Filter:='ide='+qempleadoside.Asstring+' and idt='+qempleadosid.Asstring; --- [OLD] temp_fotos.filtered:=true; --- [OLD] temp_fotos.open; --- [OLD] If not DirectoryExists('c:\agrigest\tmp') then CreateDir('c:\agrigest\tmp'); --- [OLD] Deletefile('c:\agrigest\tmp\empimg.jpg'); --- [OLD] --- [OLD] image2.Picture:=nil; --- [OLD] if temp_fotosidt.AsInteger=qempleadosid.AsInteger then --- [OLD] begin --- [OLD] temp_fotosimagen.savetofile('c:\agrigest\tmp\empimg.jpg'); --- [OLD] image2.Picture.LoadFromFile('c:\agrigest\tmp\empimg.jpg'); --- [OLD] end; } --- [OLD] idt := qempleadosid.AsString; --- [OLD] templeados.Locate('id', idt, [locaseinsensitive]); --- [OLD] if (qempleados.RecordCount > 0) and (TabJornales.Visible) then --- [OLD] // templeados.Open; --- [OLD] Label46.Caption := qempleadosnombre.AsString; --- [OLD] Label10.Caption := qempleadosnombre.AsString; --- [OLD] filtrojornales := 'where idt=' + idt; --- [OLD] if Tanyo.ItemIndex <> 0 then --- [OLD] filtrojornales := filtrojornales + ' and year(fecha)=' + Tanyo.Text; --- [OLD] if TMES.ItemIndex <> 0 then --- [OLD] filtrojornales := filtrojornales + ' and month(fecha)=' + --- [OLD] inttostr(TMES.ItemIndex); --- [OLD] if TESTADO.ItemIndex <> 0 then --- [OLD] filtrojornales := filtrojornales + ' and estado=' + TESTADO.Text; --- [OLD] filtrojornales := filtrojornales + ' order by fecha desc'; --- [OLD] qjornales.Close; --- [OLD] qjornales.SQL.Clear; --- [OLD] qjornales.SQL.Add('select * from trabajo_diario ' + filtrojornales); --- [OLD] qjornales.Open; --- [OLD] filtroanticipos := 'where idt=' + idt; --- [OLD] if tanyo2.ItemIndex <> 0 then --- [OLD] filtroanticipos := filtroanticipos + ' and year(fecha)=' + tanyo2.Text; --- [OLD] if tmes2.ItemIndex <> 0 then --- [OLD] filtroanticipos := filtroanticipos + ' and month(fecha)=' + --- [OLD] inttostr(tmes2.ItemIndex); --- [OLD] if testado2.ItemIndex <> 0 then --- [OLD] filtroanticipos := filtroanticipos + ' and estado=' + testado2.Text; --- [OLD] filtroanticipos := filtroanticipos + ' order by fecha desc'; --- [OLD] dm.qanticipos.Close; --- [OLD] dm.qanticipos.SQL.Clear; --- [OLD] dm.qanticipos.SQL.Add('select * from anticipos ' + filtroanticipos); --- [OLD] dm.qanticipos.Open; ========================================================== PROCEDURE: TBASE.listaanyosChange ========================================================== +++ [NEW] btactualizarempleadosnominas.Click; ========================================================== PROCEDURE: TBASE.listamesesChange ========================================================== +++ [NEW] btactualizarempleadosnominas.Click; ========================================================== PROCEDURE: TBASE.btJguardarClick ========================================================== +++ [NEW] if not tjornales.Active then +++ [NEW] tjornales.Open; +++ [NEW] nomfechadesde.Date := fechajornales.Date; +++ [NEW] nomfechahasta.Date := fechajornales.Date; +++ [NEW] btactualizarempleadosnominas.Click; --- [OLD] nomfechadesde.Date := fechajornales.Date; --- [OLD] nomfechahasta.Date := fechajornales.Date; --- [OLD] btactualizarempleadosnominas.Click; ========================================================== PROCEDURE: TBASE.DBGrid2CellClick ========================================================== +++ [NEW] var +++ [NEW] LId: Integer; +++ [NEW] LNuevoEstado: string; +++ [NEW] LId := qjornalesid.AsInteger; +++ [NEW] LNuevoEstado := 'S' +++ [NEW] LNuevoEstado := 'C'; +++ [NEW] dm.DBagrigest.ExecuteDirect('UPDATE trabajo_diario SET estado = ' + QuotedStr(LNuevoEstado) + +++ [NEW] ' WHERE id = ' + IntToStr(LId)); +++ [NEW] qjornales.Refresh; +++ [NEW] qjornales.Locate('id', LId, [locaseinsensitive]); +++ [NEW] if tjornales.Active then +++ [NEW] tjornales.Refresh; --- [OLD] begin --- [OLD] tjornales.Locate('id', qjornalesid.AsString, [locaseinsensitive]); --- [OLD] tjornales.edit; --- [OLD] tjornalesestado.Value := 'S'; --- [OLD] tjornales.post; --- [OLD] qjornales.Refresh; --- [OLD] qjornales.Locate('id', tjornalesid.AsString, [locaseinsensitive]); --- [OLD] end --- [OLD] begin --- [OLD] tjornales.Locate('id', qjornalesid.AsString, [locaseinsensitive]); --- [OLD] tjornales.edit; --- [OLD] tjornalesestado.Value := 'C'; --- [OLD] tjornales.post; --- [OLD] qjornales.Refresh; --- [OLD] qjornales.Locate('id', tjornalesid.AsString, [locaseinsensitive]); --- [OLD] end; ========================================================== PROCEDURE: TBASE.btatguardarClick ========================================================== +++ [NEW] nomfechadesde.Date := fechaanticipos.Date; +++ [NEW] nomfechahasta.Date := fechaanticipos.Date; +++ [NEW] btactualizarempleadosnominas.Click; --- [OLD] nomfechadesde.Date := fechajornales.Date; --- [OLD] nomfechahasta.Date := fechajornales.Date; --- [OLD] btactualizarempleadosnominas.Click; ========================================================== PROCEDURE: TBASE.qempleadosBeforeOpen ========================================================== +++ [NEW] filtro, fdesde, fhasta, sTexto: string; +++ [NEW] if PDNominas.Visible then +++ [NEW] fdesde := FormatDateTime('yyyy-mm-dd', nomfechadesde.Date); +++ [NEW] fhasta := FormatDateTime('yyyy-mm-dd', nomfechahasta.Date); +++ [NEW] filtro := ' where (activo=1 or exists (select 1 from trabajo_diario td where td.idt=trabajadores.id and td.fecha>=''' + fdesde + ''' and td.fecha<=''' + fhasta + ''') or exists (select 1 from anticipos ta where ta.idt=trabajadores.id and ta.fecha>=''' + fdesde + ''' and ta.fecha<=''' + fhasta + '''))'; +++ [NEW] sTexto := Trim(tbuscarnominas.Text); +++ [NEW] if sTexto <> '' then +++ [NEW] filtro := filtro + ' and (nombre like ''%' + sTexto + '%'' or id=''' + sTexto + ''')'; +++ [NEW] filtro := filtro + ' and grupo=' + IntToStr(vtactivo); +++ [NEW] end +++ [NEW] else +++ [NEW] if filtrotrabajadores <> '' then +++ [NEW] if vtactivo <> 0 then +++ [NEW] filtro := ' where (nombre like(''%' + filtrotrabajadores + '%'') or (id=''' + +++ [NEW] filtrotrabajadores + ''')) and grupo=' + inttostr(vtactivo); +++ [NEW] filtro := ' where (nombre like(''%' + filtrotrabajadores + '%'') or (id=''' + +++ [NEW] filtrotrabajadores + '''))'; +++ [NEW] if not chktodosempleados.Checked then +++ [NEW] if vtactivo <> 0 then +++ [NEW] filtro := ' where grupo=' + inttostr(vtactivo); +++ [NEW] if not chktodosempleados.Checked then +++ [NEW] filtro := filtro + ' and activo=1 '; +++ [NEW] if chktodosempleados.Checked then +++ [NEW] filtro := '' +++ [NEW] else +++ [NEW] filtro := ' where activo=1 '; +++ [NEW] filtro + ' order by nombre'); --- [OLD] filtro: string; --- [OLD] if filtrotrabajadores <> '' then --- [OLD] filtro := filtro + ' where (nombre like(' + '''' + '%' + --- [OLD] filtrotrabajadores + '%' + '''' + ') or (id=' + '''' + --- [OLD] filtrotrabajadores + '''' + ')) and grupo=' + inttostr(vtactivo) --- [OLD] filtro := filtro + ' where (nombre like(' + '''' + '%' + --- [OLD] filtrotrabajadores + '%' + '''' + ') or (id=' + '''' + --- [OLD] filtrotrabajadores + '''' + '))'; --- [OLD] if chktodosempleados.Checked then --- [OLD] begin --- [OLD] // filtro:=filtro+' and mostrar=1 '; --- [OLD] end --- [OLD] else --- [OLD] begin --- [OLD] filtro := filtro + ' and activo=1 '; --- [OLD] end; --- [OLD] if filtrotrabajadores = '' then --- [OLD] if vtactivo <> 0 then --- [OLD] begin --- [OLD] filtro := filtro + ' where grupo=' + inttostr(vtactivo); --- [OLD] if chktodosempleados.Checked then --- [OLD] // filtro:=filtro+' and mostrar=1 '; --- [OLD] end --- [OLD] else --- [OLD] begin --- [OLD] filtro := ''; --- [OLD] if chktodosempleados.Checked then --- [OLD] // filtro:=' where mostrar=1 '; --- [OLD] filtro := ' where activo=1 '; --- [OLD] end; --- [OLD] end; --- [OLD] filtro + ' order by nombre') ========================================================== PROCEDURE: TBASE.DBLookupComboBox12CloseUp ========================================================== +++ [NEW] if (DBLookupComboBox12.KeyValue = Null) or (VarIsNull(DBLookupComboBox12.KeyValue)) then +++ [NEW] vtactivo := 0 +++ [NEW] else +++ [NEW] vtactivo := qgrupostrabajadores2id.AsInteger; --- [OLD] vtactivo := qgrupostrabajadores2id.AsInteger;