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