private Comprobante construyeComprobante(CFDIEmpleado cfdiEmpleado) { try { Comprobante comprobante = new Comprobante(); asignarCertificado(comprobante, cfdiEmpleado.certificadoAsignado); //@ comprobante.Emisor = (construyeEmisor(cfdiEmpleado.razonesSociales)); //@ comprobante.Receptor = (construyeReceptor(cfdiEmpleado)); //@ List <ComprobanteConcepto> listConceptos = new List <ComprobanteConcepto>(); listConceptos.Add(contruyeConceptos(cfdiEmpleado)); // comprobante.Conceptos=(contruyeListaConceptos(listConceptos)); //@ comprobante.Conceptos = listConceptos.ToArray(); comprobante.Version = ("3.3"); if (cfdiEmpleado.cfdiRecibo.serieCFDI != "") { comprobante.Serie = (cfdiEmpleado.cfdiRecibo.serieCFDI); } if (cfdiEmpleado.cfdiRecibo.folioCFDI != "") { comprobante.Folio = (cfdiEmpleado.cfdiRecibo.folioCFDI); } fechaGeneraXML = DateTime.Now; comprobante.Fecha = (UtileriasSat.castFechatoXmlFechaFormato(fechaGeneraXML, UtileriasSat.FORMATO_FECHA_HORA_SAT)); comprobante.FormaPago = ("99"); comprobante.MetodoPago = ManejadorEnum.GetDescription(CMetodoPago.PUE); comprobante.TipoDeComprobante = ManejadorEnum.GetDescription(CTipoDeComprobante.N); comprobante = calculaImportesConceptos(comprobante, cfdiEmpleado); String lugarExpedicion = ""; if (cfdiEmpleado.codigoPostal == null ? false : cfdiEmpleado.codigoPostal.Trim().Length > 0) { lugarExpedicion = string.Concat(lugarExpedicion, cfdiEmpleado.razonesSociales.cp.clave);// cfdiEmpleado.codigoPostal lugarExpedicion.concat(cfdiEmpleado.getCodigoPostal()); } comprobante.LugarExpedicion = (lugarExpedicion); comprobante.Moneda = ManejadorEnum.GetDescription(CMoneda.MXN); if (cfdiEmpleado.cfdiRecibo.UUIDRelacionado != null) { ConstruyeCfdiRelacionado(cfdiEmpleado.cfdiRecibo.UUIDRelacionado); } return(comprobante); } catch (Exception e) { //utilSat.bitacora(e.getMessage()); //System.err.println(concatena.delete(0, concatena.length()).append(msgError).append("contruyeComprobante()1_Error: ").append(e)); return(null); } }
private NominaEmisor construyeNominaEmisor(CFDIEmpleado cfdiEmpleado) { NominaEmisor emisor = new NominaEmisor(); /// emisor.setCurp(""); ///Condicional cuando es persona fisica ///emisor.setEntidadSNCF(creaEntidadSNCF()); ////Condicional pendiente ///!cfdiEmpleado.tipoContrato.equalsIgnoreCase("09") | !cfdiEmpleado.tipoContrato.equalsIgnoreCase("10") // | !cfdiEmpleado.getTipoContrato().equalsIgnoreCase("99") //checar si la empresa es persona fisica, de donde saco la curp /*if (cfdiEmpleado.CURP == null ? false : cfdiEmpleado.CURP.Trim().Length > 0) * { * emisor.Curp = cfdiEmpleado.CURP; * * }*/ if (!string.Equals(cfdiEmpleado.tipoContrato, "09", StringComparison.OrdinalIgnoreCase) || !string.Equals(cfdiEmpleado.tipoContrato, "10", StringComparison.OrdinalIgnoreCase) | !string.Equals(cfdiEmpleado.tipoContrato, "99", StringComparison.OrdinalIgnoreCase)) { if (cfdiEmpleado.noRegistroPatronal == null ? false : cfdiEmpleado.noRegistroPatronal.Trim().Length > 0) { emisor.RegistroPatronal = (cfdiEmpleado.noRegistroPatronal); //Condicional 20 caract maximo } } /////emisor.setRfcPatronOrigen(""); ///pendiente opcional return(emisor); }
public Nomina generaComplementoNomina(CFDIEmpleado cfdiEmpleado, ConcepNomDefi conceptoNominaSubsidio1) { conceptoNominaSubsidio = conceptoNominaSubsidio1; Nomina nomina = contruyeNomina12(cfdiEmpleado); return(nomina); }
private Nomina contruyeNomina12(CFDIEmpleado cfdiEmpleado) { Nomina nomina = new Nomina(); try { nomina.Version = ("1.2"); nomina.FechaFinalPago = (UtileriasSat.castXmlFechaFormatoIso8601(cfdiEmpleado.fechaFinalPago)); nomina.FechaInicialPago = (UtileriasSat.castXmlFechaFormatoIso8601(cfdiEmpleado.fechaInicioPago)); nomina.FechaPago = (UtileriasSat.castXmlFechaFormatoIso8601(cfdiEmpleado.fechaPago)); nomina.NumDiasPagados = (UtileriasSat.castNumerosToBigDecimal(cfdiEmpleado.numeroDiasPago)); nomina.Emisor = (construyeNominaEmisor(cfdiEmpleado)); nomina.Receptor = (construyeNominaReceptor(cfdiEmpleado)); anioServicio = UtileriasSat.getAniosServicio(cfdiEmpleado.fechaInicioRelLaboral.GetValueOrDefault(), cfdiEmpleado.fechaFinalPago); if (string.Equals(cfdiEmpleado.tipoCorrida.clave, "ASI", StringComparison.OrdinalIgnoreCase)) {// duda, no solo una corrida asimilados es tipo de nomina especial, tambien finiquitos, vacaciones nomina.NumDiasPagados = (UtileriasSat.castNumerosToBigDecimal(1)); nomina.TipoNomina = ManejadorEnum.GetDescription(CTipoNomina.E); if (nomina.Receptor != null) { nomina.Receptor.PeriodicidadPago = ("99"); } cargaConceptosANomina(nomina, cfdiEmpleado.cfdiRecibo.cfdiReciboConcepto, cfdiEmpleado.cfdiRecibo.cfdiReciboHrsExtras); if (existeIncapacidades) { nomina.Incapacidades = (contruyeNominaListaIncapacidades(cfdiEmpleado.cfdiRecibo.cfdiReciboIncapacidad).ToArray()); } } else { nomina.TipoNomina = ManejadorEnum.GetDescription(CTipoNomina.O); cargaConceptosANomina(nomina, cfdiEmpleado.cfdiRecibo.cfdiReciboConcepto, cfdiEmpleado.cfdiRecibo.cfdiReciboHrsExtras); if (existeIncapacidades) { NominaIncapacidad[] incapacidades = contruyeNominaListaIncapacidades(cfdiEmpleado.cfdiRecibo.cfdiReciboIncapacidad).ToArray(); if (incapacidades.Length > 0) { nomina.Incapacidades = incapacidades; } } } } catch (Exception ex) { mensajeNomina.error = (ex.Message); mensajeNomina.noError = (1); //utilSat.bitacora(ex.Message); ///nomina = null; } return(nomina); }
private ComprobanteReceptor construyeReceptor(CFDIEmpleado cfdiEmpleado) { ComprobanteReceptor receptor = new ComprobanteReceptor(); //agregar el nombre receptor.Rfc = (cfdiEmpleado.RFC); if (cfdiEmpleado.nombre != "") { receptor.Nombre = (cfdiEmpleado.nombre); } receptor.UsoCFDI = ManejadorEnum.GetDescription(CUsoCFDI.P_01); return(receptor); }
private Comprobante calculaImportesConceptos(Comprobante comprobante, CFDIEmpleado cfdiEmpleado) { if (comprobante == null) { comprobante = new Comprobante(); } Double totalDeduccion = 0.0, subTotal = 0.0, impuestoRetenido = 0.0, descuentos = 0.0, total = 0.0; List <CFDIReciboConcepto> conceptos = cfdiEmpleado.cfdiRecibo.cfdiReciboConcepto; //// CFDIReciboConcepto cfdiReciboConceptoISR = null; if (conceptos != null) { int i; for (i = 0; i < conceptos.Count(); i++) { if (mapClaveConceptosISR.ContainsKey(conceptos[i].claveConcepto)) { //// cfdiReciboConceptoISR = conceptos.get(i); impuestoRetenido = (conceptos[i].importeExento) + (conceptos[i].importeGravable); } if (string.Equals(conceptos[i].tipoNaturaleza, ManejadorEnum.GetDescription(Naturaleza.PERCEPCION)) | conceptos[i].otroPago) { if (conceptos[i].tipoNaturaleza != "CALCULO") { subTotal = subTotal + (conceptos[i].importeExento) + (conceptos[i].importeGravable); } } else if (string.Equals(conceptos[i].tipoNaturaleza, ManejadorEnum.GetDescription(Naturaleza.DEDUCCION), StringComparison.OrdinalIgnoreCase)) { if (!mapClaveConceptosISR.ContainsKey(conceptos[i].claveConcepto)) { descuentos = descuentos + (conceptos[i].importeExento) + (conceptos[i].importeGravable); } totalDeduccion = totalDeduccion + (conceptos[i].importeExento) + (conceptos[i].importeGravable); } } } comprobante.Descuento = (UtileriasSat.castNumerosToBigDecimal(descuentos + impuestoRetenido)); comprobante.SubTotal = (UtileriasSat.castNumerosToBigDecimal(subTotal)); //@ total = subTotal - descuentos - impuestoRetenido; comprobante.Total = (UtileriasSat.castNumerosToBigDecimal(total)); //Pendiente return(comprobante); }
private ComprobanteConcepto contruyeConceptos(CFDIEmpleado cfdiEmpleado) { ComprobanteConcepto concepto = new ComprobanteConcepto(); concepto.Cantidad = (UtileriasSat.castNumerosToBigDecimal(1)); //@pendiente el cast concepto.Descripcion = ("Pago de nómina"); //@ concepto.ClaveProdServ = ("84111505"); //84111505 concepto.ClaveUnidad = ("ACT"); //no hay necesidad de poner el nodo impuesto Double totalPercepcion = 0.0, totalDeduciones = 0.0, totalOtrosPagos = 0.00; List <CFDIReciboConcepto> conceptos = cfdiEmpleado.cfdiRecibo.cfdiReciboConcepto; if (conceptos != null) { int i; for (i = 0; i < conceptos.Count(); i++) { if (string.Equals(conceptos[i].tipoNaturaleza, ManejadorEnum.GetDescription(Naturaleza.PERCEPCION), StringComparison.OrdinalIgnoreCase)) { if (conceptos[i].otroPago) { totalOtrosPagos = totalOtrosPagos + (conceptos[i].importeExento) + (conceptos[i].importeGravable); } else { totalPercepcion = totalPercepcion + conceptos[i].importeExento + conceptos[i].importeGravable; } } else if (string.Equals(conceptos[i].tipoNaturaleza, ManejadorEnum.GetDescription(Naturaleza.DEDUCCION), StringComparison.OrdinalIgnoreCase)) { totalDeduciones = totalDeduciones + conceptos[i].importeExento + conceptos[i].importeGravable; } } } concepto.Descuento = UtileriasSat.castNumerosToBigDecimal(totalDeduciones); concepto.Importe = (UtileriasSat.castNumerosToBigDecimal(totalPercepcion + totalOtrosPagos)); //@//pendiente la conversion concepto.ValorUnitario = (UtileriasSat.castNumerosToBigDecimal(totalPercepcion + totalOtrosPagos)); //@//pendiente la conversion return(concepto); }
public DatosEmpleadoComprobate(CFDIEmpleado cfdiEmpleado, Comprobante comprobante) { this.cfdiEmpleado = cfdiEmpleado; this.comprobante = comprobante; folio = comprobante.Folio; }
private String nomenclaturaNombreArchivo(TipoNomina tipoNomina, PeriodosNomina periodosNomina, CFDIEmpleado cFDIEmpleado) { StringBuilder builder = new StringBuilder(); builder.Append("TIPNOM_").Append((tipoNomina).clave).Append("_"); builder.Append("PERIODO_").Append(periodosNomina.clave).Append("_"); builder.Append("NUMEMP_").Append(cFDIEmpleado.plazasPorEmpleadosMov.plazasPorEmpleado.empleados.clave).Append("_"); builder.Append("FOLIO_").Append(cFDIEmpleado.cfdiRecibo.serieCFDI).Append(cFDIEmpleado.cfdiRecibo.folioCFDI).Append(".xml"); return(builder.ToString()); }
private CFDIEmpleado costruyeCFDIEmpleado(DatosPorEmpleado datosPorEmpleado, PeriodosNomina periodoNomina, TipoCorrida tipoCorrida, TipoNomina nomina, DateTime fechaActual, RazonesSociales razonesSocialesActual) { CFDIEmpleado cfdiEmpleado = new CFDIEmpleado(); PlazasPorEmpleadosMov ppem = (PlazasPorEmpleadosMov)datosPorEmpleado.plazasPorEmpleadosMov; Empleados empleado = ppem.plazasPorEmpleado.empleados; cfdiEmpleado.razonesSociales = (razonesSocialesActual);//MainPrincipal.getRazonesSocialesActual()); //validaDatosRazonSocial(razonesSocialesActual);//MainPrincipal.getRazonesSocialesActual()); cfdiEmpleado.tipoCorrida = (tipoCorrida); cfdiEmpleado.tipoNomina = (nomina); cfdiEmpleado.periodosNomina = (periodoNomina); cfdiEmpleado.plazasPorEmpleadosMov = (ppem); cfdiEmpleado.nombre = (empleado.nombre); cfdiEmpleado.apellidoMaterno = (empleado.apellidoMaterno); cfdiEmpleado.apellidoPaterno = (empleado.apellidoPaterno); camposNecesariosMsg.Append(empleado.CURP == null ? "Empleado_CURP|" : !empleado.CURP.Any() ? "Empleado_CURP|" : ""); cfdiEmpleado.CURP = (empleado.CURP); camposNecesariosMsg.Append(empleado.RFC == null ? "Empleado_RFC|" : !empleado.RFC.Any() ? "Empleado_RFC|" : ""); cfdiEmpleado.RFC = (empleado.RFC); cfdiEmpleado.calle = (empleado.domicilio); cfdiEmpleado.noExterior = (empleado.numeroExt); cfdiEmpleado.noInterior = (empleado.numeroInt); cfdiEmpleado.colonia = (empleado.colonia); if (empleado.cp != null) { cfdiEmpleado.codigoPostal = (empleado.cp.clave); } if (empleado.ciudades != null) { cfdiEmpleado.ciudad = (empleado.ciudades.descripcion); } if (empleado.municipios != null) { cfdiEmpleado.municipio = (empleado.municipios.descripcion); } if (empleado.estados != null) { cfdiEmpleado.estado = (empleado.estados.clave); } if (empleado.paises == null) { camposNecesariosMsg.Append("Empleado_Pais|"); } else { String pais = empleado.paises.descripcion; camposNecesariosMsg.Append(pais == null ? "Empleado_Pais|" : !pais.Any() ? "Empleado_Pais|" : ""); cfdiEmpleado.pais = (pais); } cfdiEmpleado.correoElectronico = (empleado.correoElectronico); cfdiEmpleado.noSeguroSocial = (empleado.IMSS); cfdiEmpleado.formaPago = "99"; //dato fijo segun la guia de llenado cfdiEmpleado.noRegistroPatronal = (ppem.plazasPorEmpleado.registroPatronal == null ? null : ppem.plazasPorEmpleado.registroPatronal.registroPatronal.Replace(" ", "-")); cfdiEmpleado.tipoContrato = (ppem.tipoContrato == null ? null : ppem.tipoContrato.clave); cfdiEmpleado.riesgoPuesto = (ppem.plazasPorEmpleado.registroPatronal == null ? null : ppem.plazasPorEmpleado.registroPatronal.riesgoPuesto); camposNecesariosMsg.Append(ppem.plazasPorEmpleado.registroPatronal == null ? "RegistroPatronal_RiesgoPuesto|" : ppem.plazasPorEmpleado.registroPatronal.riesgoPuesto == null ? "RegistroPatronal_RiesgoPuesto|" : !ppem.plazasPorEmpleado.registroPatronal.riesgoPuesto.Any() ? "RegistroPatronal_RiesgoPuesto|" : ""); cfdiEmpleado.puesto = (ppem.puestos == null ? null : ppem.puestos.descripcion); cfdiEmpleado.departamento = (ppem.departamentos == null ? null : ppem.departamentos.descripcion); cfdiEmpleado.fechaInicioRelLaboral = (ppem.fechaInicial); /// fecha ingreso esta en ingresos y reingresos if (tipoCorrida == null ? false : string.Equals(tipoCorrida.clave, "ASI", StringComparison.OrdinalIgnoreCase)) {// // camposNecesariosMsg.Append(ppem.clabe == null ? "PlazasPorEmpleadosMov_CLABE|" : !ppem.clabe.Trim().Any() ? "PlazasPorEmpleadosMov_CLABE" : ""); } //cfdiEmpleado.CLABE = (ppem.clabe); //camposNecesariosMsg.Append(ppem.bancos == null ? "PlazasPorEmpleadosMov_Bancos|" : ""); //cfdiEmpleado.claveBancoSat = (ppem.bancos == null ? null : ppem.bancos.clave); //if (ppem.cuentaBancaria != null) //{ // cfdiEmpleado.cuentaBancaria = (ppem.cuentaBancaria.Replace("-", "")); //} camposNecesariosMsg.Append(ppem.regimenContratacion == null ? "PlazasPorEmpleadosMov_RegimenContratacion|" : ""); cfdiEmpleado.regimenContratacion = (ppem.regimenContratacion); cfdiEmpleado.jornada = (ppem.turnos == null ? null : ppem.turnos.Jornada == null ? null : ppem.turnos.Jornada.clave); camposNecesariosMsg.Append(periodoNomina.fechaPago == null ? "PeriodosNomina_FechaPago|" : ""); cfdiEmpleado.fechaPago = (periodoNomina.fechaPago.GetValueOrDefault()); camposNecesariosMsg.Append(periodoNomina.fechaFinal == null ? "PeriodosNomina_FechaFinal|" : ""); cfdiEmpleado.fechaFinalPago = (periodoNomina.fechaFinal.GetValueOrDefault()); camposNecesariosMsg.Append(periodoNomina.fechaInicial == null ? "PeriodosNomina_FechaInicial|" : ""); cfdiEmpleado.fechaInicioPago = (periodoNomina.fechaInicial.GetValueOrDefault()); camposNecesariosMsg.Append(periodoNomina.diasPago == null ? "PeriodosNomina_DiasPago|" : ""); cfdiEmpleado.numeroDiasPago = (periodoNomina.diasPago.GetValueOrDefault()); cfdiEmpleado.salIntIMSS = (datosPorEmpleado.salarioDiarioIntegrado); cfdiEmpleado.salBaseCotAport = (ppem.sueldoDiario); if (datosPorEmpleado.fechaIngreso == null || fechaActual == null) { System.Diagnostics.Debug.WriteLine("Las fechas del empleado estan vacías"); } ////datosPorEmpleado.getFechaIngreso() cfdiEmpleado.antiguedad = (Utilerias.cantidadSemanasEntreDosFechasStatic(ppem.fechaInicial.GetValueOrDefault(), periodoNomina.fechaFinal.GetValueOrDefault())); //calculado cfdiEmpleado.antiguedadYMD = (UtileriasSat.getAntiguedadYMD(ppem.fechaInicial.GetValueOrDefault(), periodoNomina.fechaFinal.GetValueOrDefault())); //calculado cfdiEmpleado.periodiciadadPago = (nomina.periodicidad.clave); return(cfdiEmpleado); }
private NominaReceptor construyeNominaReceptor(CFDIEmpleado cfdiEmpleado) { NominaReceptor receptor = new NominaReceptor(); receptor.Curp = (cfdiEmpleado.CURP); if (cfdiEmpleado.noSeguroSocial == null ? false : cfdiEmpleado.noSeguroSocial.Trim().Length > 0) { receptor.NumSeguridadSocial = (cfdiEmpleado.noSeguroSocial); } if (cfdiEmpleado.fechaInicioRelLaboral != null) { receptor.FechaInicioRelLaboral = (UtileriasSat.castXmlFechaFormatoIso8601(cfdiEmpleado.fechaInicioRelLaboral.GetValueOrDefault())); } if (cfdiEmpleado.antiguedad != null) { //"P".concat(String.valueOf(cfdiEmpleado.getAntiguedad())).concat("W") receptor.Antigüedad = (string.Concat("P", string.Concat(cfdiEmpleado.antiguedad, "W"))); } //////// if (cfdiEmpleado.getAntiguedadYMD().trim().length() > 0) { //////// receptor.setAntiguedad(cfdiEmpleado.getAntiguedadYMD()); //////// } receptor.TipoContrato = (cfdiEmpleado.tipoContrato); if (cfdiEmpleado.jornada == null ? false : cfdiEmpleado.jornada.Trim().Length > 0) { receptor.TipoJornada = (cfdiEmpleado.jornada); } receptor.TipoRegimen = (cfdiEmpleado.regimenContratacion); //@ receptor.NumEmpleado = (cfdiEmpleado.plazasPorEmpleadosMov.plazasPorEmpleado.empleados.clave); if (cfdiEmpleado.departamento == null ? false : cfdiEmpleado.departamento.Trim().Length > 0) { receptor.Departamento = (cfdiEmpleado.departamento); } if (cfdiEmpleado.puesto == null ? false : cfdiEmpleado.puesto.Trim().Length > 0) { receptor.Puesto = (cfdiEmpleado.puesto); } if (cfdiEmpleado.riesgoPuesto != null) { receptor.RiesgoPuesto = (cfdiEmpleado.riesgoPuesto); } receptor.PeriodicidadPago = (cfdiEmpleado.periodiciadadPago); if (cfdiEmpleado.claveBancoSat == null ? false : cfdiEmpleado.claveBancoSat.Trim().Length > 0) { receptor.Banco = (cfdiEmpleado.claveBancoSat); } if (cfdiEmpleado.cuentaBancaria == null ? false : cfdiEmpleado.cuentaBancaria.Trim().Length > 0) { receptor.CuentaBancaria = (UtileriasSat.castNumerosToBigInteger(cfdiEmpleado.cuentaBancaria).ToString()); } if (cfdiEmpleado.salBaseCotAport == null ? false: cfdiEmpleado.salBaseCotAport > 0) { receptor.SalarioBaseCotApor = (UtileriasSat.castNumerosToImporteMX(cfdiEmpleado.salBaseCotAport)); } if (cfdiEmpleado.salIntIMSS == null ? false: cfdiEmpleado.salIntIMSS > 0) { receptor.SalarioDiarioIntegrado = (UtileriasSat.castNumerosToImporteMX(cfdiEmpleado.salIntIMSS)); } try { //receptor.ClaveEntFed=(CEstado.fromValue(cfdiEmpleado.estado)); receptor.ClaveEntFed = (cfdiEmpleado.estado); } catch (Exception e) { receptor.ClaveEntFed = (null); } ///subcontratacion ///receptor.setSindicalizado(SCHEMALOCATION_NOMINA); //opcional pendiente return(receptor); }