Añade nomina.sh y nomina.csv
This commit is contained in:
		
							
								
								
									
										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} | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user