Añade nomina.sh y nomina.csv
This commit is contained in:
parent
7972a3f59c
commit
e539f1e0a7
3
scrips/nomina.csv
Normal file
3
scrips/nomina.csv
Normal file
@ -0,0 +1,3 @@
|
||||
P,#,Nombre,P_Apellido,S_Apellido,Cédula,Dirección,Salario,Días,Salud,Pension,Aux Transpo,Sueldo,Fecha_pago,Fecha_Ingreso,Fecha_inicio,Fecha_fin,Fecha_generación,hora_generacion
|
||||
N,000005,JUAN,GONZALEZ,CARDONA,71380802,CL 35C 102-17 BL 7 AP 101,2400000,30,96000,96000,140606,2400000,2024-04-30,2022-01-05,2024-04-01,2024-04-30,2024-04-30,08:01:00
|
||||
N,000006,VIVIANA,GIRALDO,VASQUEZ,32257132,CL 35C 102-17 BL 7 AP 101,1160000,30,46400,46400,140606,1160000,2024-04-30,2022-09-05,2024-04-01,2024-04-30,2024-04-30,08:01:00
|
|
177
scrips/nomina.sh
Normal file
177
scrips/nomina.sh
Normal file
@ -0,0 +1,177 @@
|
||||
#!/bin/bash
|
||||
|
||||
SOFTWARE_PIN='20234'
|
||||
SOFTWARE_ID='100b0d10-0ca0-4ad4-a894-b704a568cbf3'
|
||||
NIT='901575528'
|
||||
DV='2'
|
||||
TIPO_AMBIENTE='AMBIENTE_PRUEBAS'
|
||||
RAZON_SOCIAL='BICI PIZZA S.A.S'
|
||||
SET_PRUEBAS='be4d232c-9c7b-4542-b24d-6044c4e316ce'
|
||||
PASSPHARASE='7U3XbtZ76W'
|
||||
#La ruta donde se encuentren estos archivos
|
||||
LLAVE_PRIVADA='privada.pem'
|
||||
LLAVE_PUBLICA='publica.pem'
|
||||
CERTIFICADO='Certificado.pfx'
|
||||
HABILITACION='True'
|
||||
ARCHIVO_CSV='nomina.csv'
|
||||
|
||||
IFS=,
|
||||
while read line; do
|
||||
|
||||
field=( $line )
|
||||
|
||||
Prefijo=${field[0]}
|
||||
Numero=${field[1]}
|
||||
Nombre=${field[2]}
|
||||
P_Apellido=${field[3]}
|
||||
S_Apellifo=${field[4]}
|
||||
Cedula=${field[5]}
|
||||
Direccion=${field[6]}
|
||||
Salario=${field[7]}
|
||||
Sueldo=${field[12]}
|
||||
Dias=${field[8]}
|
||||
Salud=${field[9]}
|
||||
Pension=${field[10]}
|
||||
AuxTp=${field[11]}
|
||||
Pago=${field[13]}
|
||||
Ingreso=${field[14]}
|
||||
Inicio=${field[15]}
|
||||
Fin=${field[16]}
|
||||
Generacion=${field[17]}
|
||||
Hora=${field[18]}
|
||||
|
||||
echo "
|
||||
from facho import fe
|
||||
|
||||
SOFTWARE_PIN='${SOFTWARE_PIN}'
|
||||
SOFTWARE_ID='${SOFTWARE_ID}'
|
||||
NIT='${NIT}'
|
||||
DV='${DV}'
|
||||
|
||||
def extensions(nomina):
|
||||
return []
|
||||
|
||||
def nomina():
|
||||
nomina = fe.nomina.DIANNominaIndividual()
|
||||
|
||||
nomina.asignar_fecha_pago('${Pago}')
|
||||
|
||||
nomina.asignar_metadata(fe.nomina.Metadata(
|
||||
novedad=fe.nomina.Novedad(value='false'),
|
||||
secuencia=fe.nomina.NumeroSecuencia(
|
||||
prefijo='${Prefijo}',
|
||||
consecutivo='${Numero}'
|
||||
),
|
||||
lugar_generacion=fe.nomina.Lugar(
|
||||
pais = fe.nomina.Pais(
|
||||
code = 'CO'
|
||||
),
|
||||
departamento = fe.nomina.Departamento(
|
||||
code = '05'
|
||||
),
|
||||
municipio = fe.nomina.Municipio(
|
||||
code = '05001'
|
||||
),
|
||||
),
|
||||
proveedor=fe.nomina.Proveedor(
|
||||
razon_social='${RAZON_SOCIAL}',
|
||||
nit=NIT,
|
||||
dv=DV,
|
||||
software_id=SOFTWARE_ID,
|
||||
software_pin=SOFTWARE_PIN
|
||||
)
|
||||
))
|
||||
|
||||
nomina.asignar_periodo(fe.nomina.Periodo(
|
||||
fecha_ingreso= '${Ingreso}',
|
||||
fecha_liquidacion_inicio='${Inicio}',
|
||||
fecha_liquidacion_fin='${Fin}',
|
||||
fecha_generacion='${Generacion}'
|
||||
))
|
||||
|
||||
nomina.asignar_informacion_general(fe.nomina.InformacionGeneral(
|
||||
fecha_generacion = '${Generacion}',
|
||||
hora_generacion = '${Hora}-05:00',
|
||||
tipo_ambiente = fe.nomina.InformacionGeneral.${TIPO_AMBIENTE},
|
||||
software_pin = SOFTWARE_PIN,
|
||||
periodo_nomina = fe.nomina.PeriodoNomina(code='1'),
|
||||
tipo_moneda = fe.nomina.TipoMoneda(code='COP')
|
||||
))
|
||||
|
||||
nomina.asignar_pago(fe.nomina.Pago(
|
||||
forma=fe.nomina.FormaPago(
|
||||
code='1',
|
||||
),
|
||||
metodo=fe.nomina.MetodoPago(
|
||||
code='10'
|
||||
)
|
||||
))
|
||||
nomina.asignar_empleador(fe.nomina.Empleador(
|
||||
razon_social='${RAZON_SOCIAL}',
|
||||
nit = NIT,
|
||||
dv = DV,
|
||||
pais = fe.nomina.Pais(
|
||||
code = 'CO'
|
||||
),
|
||||
departamento = fe.nomina.Departamento(
|
||||
code = '05'
|
||||
),
|
||||
municipio = fe.nomina.Municipio(
|
||||
code = '05001'
|
||||
),
|
||||
direccion = 'calle etrivial'
|
||||
))
|
||||
|
||||
nomina.asignar_trabajador(fe.nomina.Trabajador(
|
||||
tipo_contrato = fe.nomina.TipoContrato(
|
||||
code = '1'
|
||||
),
|
||||
alto_riesgo = False,
|
||||
tipo_documento = fe.nomina.TipoDocumento(
|
||||
code = '11'
|
||||
),
|
||||
primer_apellido = '${P_Apellido}',
|
||||
segundo_apellido = '${S_Apellido}',
|
||||
primer_nombre = '${Nombre}',
|
||||
lugar_trabajo = fe.nomina.LugarTrabajo(
|
||||
pais = fe.nomina.Pais(code='CO'),
|
||||
departamento = fe.nomina.Departamento(code='05'),
|
||||
municipio = fe.nomina.Municipio(code='05001'),
|
||||
direccion = '${Direccion}'
|
||||
),
|
||||
numero_documento = NIT,
|
||||
tipo = fe.nomina.TipoTrabajador(
|
||||
code = '01'
|
||||
),
|
||||
salario_integral = False,
|
||||
sueldo = fe.nomina.Amount(${Sueldo})
|
||||
))
|
||||
|
||||
nomina.adicionar_devengado(fe.nomina.DevengadoBasico(
|
||||
dias_trabajados = ${field[8]},
|
||||
sueldo_trabajado = fe.nomina.Amount(${Salario})
|
||||
))
|
||||
|
||||
nomina.adicionar_deduccion(fe.nomina.DeduccionSalud(
|
||||
porcentaje = fe.nomina.Amount(4),
|
||||
deduccion = fe.nomina.Amount(${Salud})
|
||||
))
|
||||
|
||||
nomina.adicionar_deduccion(fe.nomina.DeduccionFondoPension(
|
||||
porcentaje=fe.nomina.Amount(4),
|
||||
deduccion = fe.nomina.Amount(${Pension})
|
||||
))
|
||||
return nomina
|
||||
" > "${Prefijo}${Numero}".py
|
||||
facho generate-nomina --private-key ${CERTIFICADO} --passphrase ${PASSPHARASE} --use-cache-policy --sign "${field[0]}${field[1]}".py "${Prefijo}${Numero}".xml
|
||||
CUNE=`grep -oP "<CodigoQR>(.*)</CodigoQR>" "${Prefijo}${Numero}".xml | sed -n 's/.*documentkey=\([^<]*\)<\/CodigoQR>.*/\1/p'`
|
||||
zip "${field[0]}${field[1]}".zip "${field[0]}${field[1]}".xml
|
||||
if [ "$HABILITACION" == "True" ];then
|
||||
facho soap-send-test-set-async --private-key ${LLAVE_PRIVADA} --public-key ${LLAVE_PUBLICA} --habilitacion --password ${PASSPHARASE} --test-setid ${SET_PRUEBAS} "${field[0]}${field[1]}".xml "${field[0]}${field[1]}".zip
|
||||
else
|
||||
facho soap-send-nomina-sync --private-key ${LLAVE_PRIVADA} --public-key ${LLAVE_PUBLICA} --password ${PASSPHARASE} "${field[0]}${field[1]}".xml "${field[0]}${field[1]}".zip --produccion
|
||||
fi
|
||||
|
||||
|
||||
done < ${ARCHIVO_CSV}
|
||||
|
Loading…
Reference in New Issue
Block a user