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