public Mensaje buscaPeriodoNominaActual(String claveTipoNomina, String claveTipoCorrida, decimal?idPeriodo, DateTime fechaActual, DBContextSimple dbContextSimple) { inicializaVariableMensaje(); PeriodosNomina periodos = null; try { var query = from p in dbContextSimple.Set <PeriodosNomina>() join t in dbContextSimple.Set <TipoNomina>() on p.tipoNomina.id equals t.id join c in dbContextSimple.Set <TipoCorrida>() on p.tipoCorrida.id equals c.id select new { p, t, c }; if (idPeriodo == null) { query = from sub in query where (fechaActual >= sub.p.fechaInicial && fechaActual <= sub.p.fechaFinal) && sub.t.clave == claveTipoNomina && sub.c.clave == (claveTipoCorrida == null ? "PER" : claveTipoCorrida) select sub; } else { query = from sub in query where sub.p.id == idPeriodo select sub; } periodos = query.Select(p => p.p).Single(); mensajeResultado.noError = 0; mensajeResultado.error = ""; mensajeResultado.resultado = periodos; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(concatena.Remove(0, concatena.Length).Append(msgError).Append("buscaPeriodoNominaActual()1_Error: ").Append(ex)); mensajeResultado.noError = ControlErroresEntity.buscaNoErrorPorExcepcion(ex); mensajeResultado.error = ex.GetBaseException().ToString(); mensajeResultado.resultado = null; } return(mensajeResultado); }
private Mensaje addValoresSemaforo(Mensaje mensaje, SemaforoCalculoNomina entity) { if (entity.periodosNomina.status == true) { PeriodosNomina periodo = null; //PeriodosNomina periodo = (PeriodosNomina)existeClave(PeriodosNomina.class.getSimpleName(), new String[]{"id", "status"}, new Object[]{entity.getPeriodoNomina().getId(), false}, null); if (periodo == null) { getSession().Set <SemaforoCalculoNomina>().Add(entity); mensaje.resultado = entity; mensaje.noError = entity == null ? 1 : 0; } else { mensaje.resultado = null; mensaje.noError = 2; } } else { getSession().Set <SemaforoCalculoNomina>().Add(entity); mensaje.resultado = entity; mensaje.noError = entity == null ? 1 : 0; } return(mensaje); }
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 List <VacacionesAplicacion> obtenerVacaciones(PeriodosNomina periodo, PlazasPorEmpleadosMov plazasPorEmpleadosMovEjecutandose, DateTime?fechaBajaFiniq, string claveTipoNomina, string claveTipoCorrida, bool isCorridaVacaciones, DBContextSimple dbContextSimple) { List <VacacionesAplicacion> listVacacionesAplicacion = null; try { if (periodo == null) { return(new List <VacacionesAplicacion>()); } if (fechaBajaFiniq != null) { PeriodosNomina periodosNominaTmp = null; if (fechaBajaFiniq != null) { periodosNominaTmp = (from p in dbContextSimple.Set <PeriodosNomina>() where p.tipoNomina.clave == claveTipoNomina && p.tipoCorrida.clave == claveTipoCorrida && (fechaBajaFiniq >= p.fechaInicial && fechaBajaFiniq <= p.fechaFinal) select p).SingleOrDefault(); } decimal idPeriodo = periodo.id; if (periodosNominaTmp != null) { idPeriodo = periodosNominaTmp.id; } listVacacionesAplicacion = (from va in dbContextSimple.Set <VacacionesAplicacion>() //join vd in dbContextSimple.Set<VacacionesDisfrutadas>() on va.vacacionesDisfrutadas.id equals vd.id //join em in dbContextSimple.Set<Empleados>() on vd.empleados.id equals em.id //join pa in dbContextSimple.Set<PeriodosNomina>() on vd.periodoAplicacion.id equals pa.id where va.vacacionesDisfrutadas.periodoAplicacion_ID == idPeriodo && va.vacacionesDisfrutadas.empleados_ID == plazasPorEmpleadosMovEjecutandose.plazasPorEmpleado.empleados.id select va).ToList(); } else { listVacacionesAplicacion = (from va in dbContextSimple.Set <VacacionesAplicacion>() join vd in dbContextSimple.Set <VacacionesDisfrutadas>() on va.vacacionesDisfrutadas.id equals vd.id join em in dbContextSimple.Set <Empleados>() on vd.empleados.id equals em.id join pa in dbContextSimple.Set <PeriodosNomina>() on vd.periodoAplicacion.id equals pa.id where em.id == plazasPorEmpleadosMovEjecutandose.plazasPorEmpleado.empleados.id && (vd.fechaPago >= periodo.fechaInicial && vd.fechaPago <= periodo.fechaFinal) select va).ToList(); } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(concatena.Remove(0, concatena.Length).Append(msgError).Append("obtenerVacaciones()1_Error: ").Append(ex)); mensajeResultado.noError = ControlErroresEntity.buscaNoErrorPorExcepcion(ex); mensajeResultado.error = ex.GetBaseException().ToString(); mensajeResultado.resultado = null; } return(listVacacionesAplicacion); }
private List <Asistencias> obtenerAsistencias(DateTime fechaInicial, DateTime fechaFinal, PeriodosNomina periodoNomina, DateTime?fechaBajaFiniq, string claveEmpleado, string claveRazonSocial, string claveTipoNomina, string claveTipoCorrida, DateTime fechaRangoInicial, DateTime fechaRangoFinal, DBContextSimple dbContextSimple) { List <Asistencias> listAsistencias = null; try { if (periodoNomina == null) { return(new List <Asistencias>()); } if (fechaBajaFiniq != null) { PeriodosNomina periodoNomTemp = (from p in dbContextSimple.Set <PeriodosNomina>() where p.tipoNomina.clave == claveTipoNomina && p.tipoCorrida.clave == claveTipoCorrida && (fechaBajaFiniq >= p.fechaInicial && fechaBajaFiniq <= p.fechaFinal) select p).SingleOrDefault(); if (periodoNomTemp == null) { fechaInicial = fechaRangoInicial; fechaFinal = fechaRangoFinal; } else { fechaInicial = periodoNomTemp.fechaInicial.GetValueOrDefault(); fechaFinal = periodoNomTemp.fechaFinal.GetValueOrDefault(); } } listAsistencias = (from a in dbContextSimple.Set <Asistencias>() where a.empleados.clave == claveEmpleado && a.tipoNomina.clave == claveTipoNomina && a.razonesSociales.clave == claveRazonSocial && a.periodosNomina.tipoCorrida.clave == claveTipoCorrida && (a.fecha >= fechaInicial && a.fecha <= fechaFinal) select a).ToList(); listAsistencias = listAsistencias == null ? new List <Asistencias>() : listAsistencias; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(concatena.Remove(0, concatena.Length).Append(msgError).Append("obtenerAsistencias()1_Error: ").Append(ex)); mensajeResultado.noError = ControlErroresEntity.buscaNoErrorPorExcepcion(ex); mensajeResultado.error = ex.GetBaseException().ToString(); listAsistencias = new List <Asistencias>(); } return(listAsistencias); }
private Asistencias creaAsistenciaIncapacidad(Empleados emp, TipoNomina nomina, DateTime fecha, Excepciones excepcion, PeriodosNomina periodo, RazonesSociales razonesSociales) { List <Asistencias> listAsistencia = getAsistenciasPorRangoFechas(emp.clave, fecha, fecha, razonesSociales.clave);//JSA02 Asistencias asist = new Asistencias(); if (listAsistencia == null) { listAsistencia = new List <Asistencias>(); } if (listAsistencia.Count > 0) { asist = listAsistencia[0]; } asist.razonesSociales = razonesSociales; asist.empleados = emp; asist.tipoNomina = nomina; asist.periodosNomina = periodo; asist.excepciones = excepcion; asist.fecha = fecha; asist.jornada = 8.0; asist.tipoPantalla = 100; return(asist); }
private List <Asistencias> creaListaAsistenciasIncapacidad(List <Asistencias> asistencias, RegistroIncapacidad registroIncapacidad, DatosGlobales datoGlobal, RazonesSociales razonesSociales, List <DateTime> diasFestivos, DateTime fechaIniEmpalme, DateTime fechaFinEmpalme, DateTime fechaInicial, DateTime fechaFinal) { int i, j, k, cont = 0, orden = 0; TipoNomina nomina; List <PeriodosNomina> periodos; PeriodosNomina periodo = null; Asistencias asis; try { DateTime fechainicio = DateTime.Now; if (asistencias.Count == 0) { fechainicio = Convert.ToDateTime(registroIncapacidad.fechaInicial); for (i = 0; i < registroIncapacidad.diasIncapacidad; i++) { fechainicio = fechainicio.AddDays(cont); cont = 1; for (k = 0; k < datoGlobal.plazas.Count; k++) { nomina = datoGlobal.plazas[k].tipoNomina; periodos = (List <PeriodosNomina>)datoGlobal.mapTipoNomina[nomina.clave]; for (j = 0; j < periodos.Count; j++) { if (fechainicio.CompareTo(periodos[j].fechaInicial) > 0 && fechainicio.CompareTo(periodos[j].fechaFinal) < 0 || fechainicio.CompareTo(periodos[j].fechaInicial) == 0 || fechainicio.CompareTo(periodos[j].fechaFinal) == 0) { periodo = periodos[j]; break; } } asis = creaAsistenciaIncapacidad(registroIncapacidad.empleados, nomina, fechainicio, datoGlobal.excepIncapacidad, periodo, razonesSociales); asis.ordenId = orden; orden++; asistencias.Add(asis); } } } else { List <Asistencias> cambiosAsistencias = new List <Asistencias>(); List <DateTime> listFechas = new List <DateTime>(); for (i = 0; i < registroIncapacidad.diasIncapacidad; i++) { fechainicio = Convert.ToDateTime(registroIncapacidad.fechaInicial); fechainicio = fechainicio.AddDays(i); listFechas.Add(fechainicio); } cont = 0; j = 0; bool existe; fechainicio = DateTime.Now; while (j < asistencias.Count) { existe = false; cont = 0; fechainicio = Convert.ToDateTime(registroIncapacidad.fechaInicial); for (i = 0; i < registroIncapacidad.diasIncapacidad; i++) { fechainicio = fechainicio.AddDays(cont); cont = 1; if (fechainicio.CompareTo(asistencias[j].fecha) == 0) { existe = true; listFechas.Remove(fechainicio); break; } } if (existe) { asistencias[j].excepciones = datoGlobal.excepIncapacidad; cambiosAsistencias.Add(asistencias[j]); asistencias.RemoveAt(j); } else { j++; } } for (i = 0; i < listFechas.Count; i++) { fechainicio = listFechas[i]; for (k = 0; k < datoGlobal.plazas.Count; k++) { nomina = datoGlobal.plazas[k].tipoNomina; periodos = (List <PeriodosNomina>)datoGlobal.mapTipoNomina[nomina.clave]; for (j = 0; j < periodos.Count; j++) { if (fechainicio.CompareTo(periodos[j].fechaInicial) > 0 && fechainicio.CompareTo(periodos[j].fechaFinal) < 0 || fechainicio.CompareTo(periodos[j].fechaInicial) == 0 || fechainicio.CompareTo(periodos[j].fechaFinal) == 0) { periodo = periodos[j]; break; } asis = creaAsistenciaIncapacidad(registroIncapacidad.empleados, nomina, fechainicio, datoGlobal.excepIncapacidad, periodo, razonesSociales); cambiosAsistencias.Add(asis); } } } bool isdiasFestivos; for (i = 0; i < asistencias.Count; i++) { isdiasFestivos = false; for (j = 0; j < diasFestivos.Count; j++) { if (diasFestivos[j].CompareTo(asistencias[i].fecha) == 0) { isdiasFestivos = true; break; } } if (isdiasFestivos) { asistencias[i].excepciones = datoGlobal.excepFestivo; asistencias[i].jornada = 0.0; } else { if (fechaIniEmpalme != null && fechaFinEmpalme != null) { if (!(Convert.ToDateTime(asistencias[i].fecha).CompareTo(fechaIniEmpalme) >= 0 && (Convert.ToDateTime(asistencias[i].fecha).CompareTo(fechaFinEmpalme) <= 0))) { asistencias[i].excepciones = datoGlobal.excepDefault; asistencias[i].jornada = 8.0; } } else { if (!(Convert.ToDateTime(asistencias[i].fecha).CompareTo(fechaIniEmpalme) >= 0 && (Convert.ToDateTime(asistencias[i].fecha).CompareTo(fechaFinEmpalme) <= 0))) { asistencias[i].excepciones = datoGlobal.excepDefault; asistencias[i].jornada = 8.0; } } } } //Utilerias.ordena(cambiosAsistencias, "Fecha"); for (i = 0; i < cambiosAsistencias.Count; i++) { cambiosAsistencias[i].ordenId = i; } asistencias = cambiosAsistencias; } } catch (Exception ex) { commit = false; mensajeResultado.noError = 200; mensajeResultado.error = ex.Message; } return(asistencias); }
static public String construyeRutaXML(RazonesSociales razonesSociales, TipoNomina tipoNomina, PeriodosNomina periodosNomina) { StringBuilder builder = new StringBuilder(); String ruta = razonesSociales.ubicacionXML; try { if (ruta == null ? true : !ruta.Any()) { string path = System.IO.Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).FullName; if (Environment.OSVersion.Version.Major >= 6) { ruta = System.IO.Directory.GetParent(path).ToString(); } } builder.Append(ruta).Append(System.IO.Path.DirectorySeparatorChar).Append(razonesSociales.clave).Append("-").Append(razonesSociales.rfc); bool continuar = true; if (!System.IO.Directory.Exists(builder.ToString())) { System.IO.Directory.CreateDirectory(builder.ToString()); } if (continuar) { builder.Append(System.IO.Path.DirectorySeparatorChar); builder.Append(tipoNomina.clave); if (!System.IO.Directory.Exists(builder.ToString())) { System.IO.Directory.CreateDirectory(builder.ToString()); } } if (continuar) { builder.Append(System.IO.Path.DirectorySeparatorChar); builder.Append(periodosNomina.año); if (!System.IO.Directory.Exists(builder.ToString())) { System.IO.Directory.CreateDirectory(builder.ToString()); } } if (continuar) { builder.Append(System.IO.Path.DirectorySeparatorChar); builder.Append(periodosNomina.clave); if (!System.IO.Directory.Exists(builder.ToString())) { System.IO.Directory.CreateDirectory(builder.ToString()); } } } catch (Exception ex) { // System.out.println("ERROR AL CREAR LA CARPETA " + file.getAbsolutePath()); builder.Remove(0, builder.Length).Append(ruta); } return(builder.ToString()); }
public List <CFDIEmpleado> generaComprobanteV33(TipoNomina tipoNomina, PeriodosNomina periodosNomina, List <CFDIEmpleado> listCFDIEmpleados, ConfiguraTimbrado configuraTimbrado, System.Xml.Xsl.XslCompiledTransform transformerCadenaOriginal, DBContextAdapter dbContextSimple) { Comprobante oComprobante = new Comprobante(); //aqui va que agarre el certificado de donde se tiene configurado ConcepNomDefi conceptoNominaSubsidio = servicioCFDIEmpleado.getConceptoNominaSubsidio(dbContextSimple); /* string pathCer = ruta; * string pathKey = ruta;*/ string pathXML = ruta; // string clavePrivada = null; SelloDigital oSelloDigital = new SelloDigital(); Certificados certificadoActual = new Certificados(); listCFDIEmpleados = listCFDIEmpleados == null ? new List <CFDIEmpleado>() : listCFDIEmpleados; List <object> timbreFiscalDigitales; try { List <DatosEmpleadoComprobate> datosEmpleadoComprobates = new List <DatosEmpleadoComprobate>(); if (listCFDIEmpleados.Count > 0) { RazonesSociales razonSocial = listCFDIEmpleados[0].razonesSociales; int i, j; String nombreFile; certificadoActual = servicioCertificado.certificadoActualId(razonSocial.id, dbContextSimple); StringBuilder pathXmlExistentes = new StringBuilder(); pathXmlExistentes.Append(construyeRutaXML(razonSocial, tipoNomina, periodosNomina)).Append(System.IO.Path.DirectorySeparatorChar); /*******************Busca documentos ya existentes********************/ Comprobante comprobanteExistentes; ConstruyeTimbreFiscalDigital11 timbreDigitalCadenaOrig = null; List <CFDIEmpleado> listCFDIEmpleadosTimbrados = new List <CFDIEmpleado>(); String ruta2 = pathXmlExistentes.ToString(), nombreArchivo; for (i = 0; i < listCFDIEmpleados.Count(); i++) { nombreArchivo = nomenclaturaNombreArchivo(tipoNomina, periodosNomina, listCFDIEmpleados[i]); if (listCFDIEmpleados[i].cfdiRecibo.statusTimbrado == StatusTimbrado.TIMBRADO) { XmlDocument doc = new XmlDocument(); MemoryStream ms = new MemoryStream(listCFDIEmpleados[i].cfdiRecibo.xmlTimbrado); doc.Load(ms); XmlSerializer oXmlSerializar = new XmlSerializer(typeof(Comprobante)); using (XmlReader writer = new XmlNodeReader(doc)) { comprobanteExistentes = (Comprobante)oXmlSerializar.Deserialize(writer); } CreateXML(comprobanteExistentes, string.Concat(ruta2, nombreArchivo)); listCFDIEmpleadosTimbrados.Add(listCFDIEmpleados[i]); } } if (listCFDIEmpleadosTimbrados.Count() > 0) { for (i = 0; i < listCFDIEmpleadosTimbrados.Count; i++) { listCFDIEmpleados.Remove(listCFDIEmpleadosTimbrados[i]); } } Comprobante comprobante = null; ConstruyeNomina12 creaXmlNomina = new ConstruyeNomina12(); Nomina nomina12; if (listCFDIEmpleados.Count > 0) { for (i = 0; i < listCFDIEmpleados.Count; i++) { if (listCFDIEmpleados[i].cfdiRecibo.statusXmlSat == StatusXmlSat.NINGUNO) { listCFDIEmpleados[i].certificadoAsignado = certificadoActual; comprobante = construyeComprobante(listCFDIEmpleados[i]); listCFDIEmpleados[i].cfdiRecibo.fechaEmision = fechaGeneraXML; nomina12 = creaXmlNomina.generaComplementoNomina(listCFDIEmpleados[i], conceptoNominaSubsidio); if (creaXmlNomina.mensajeNomina.noError > 0) { DatosEmpleadoComprobate errorNominaDatos = new DatosEmpleadoComprobate(listCFDIEmpleados[i], comprobante); datosEmpleadoComprobates.Add(new DatosEmpleadoComprobate(listCFDIEmpleados[i], comprobante)); errorNominaDatos.cfdiEmpleado.mensaje = creaXmlNomina.mensajeNomina.error; } else { comprobante = agregarComplementoNomina(comprobante, nomina12); datosEmpleadoComprobates.Add(new DatosEmpleadoComprobate(listCFDIEmpleados[i], comprobante)); } } else if (listCFDIEmpleados[i].cfdiRecibo.statusXmlSat == StatusXmlSat.ENVIADO_SAT) { try { XmlDocument doc = new XmlDocument(); MemoryStream ms = new MemoryStream(listCFDIEmpleados[i].cfdiRecibo.xmlTimbrado); doc.Load(ms); XmlSerializer oXmlSerializar = new XmlSerializer(typeof(Comprobante)); using (XmlReader writer = new XmlNodeReader(doc)) { comprobante = (Comprobante)oXmlSerializar.Deserialize(writer); } } catch (Exception) { listCFDIEmpleados[i].certificadoAsignado = certificadoActual; listCFDIEmpleados[i].cfdiRecibo.statusXmlSat = StatusXmlSat.NINGUNO; comprobante = construyeComprobante(listCFDIEmpleados[i]); listCFDIEmpleados[i].cfdiRecibo.fechaEmision = fechaGeneraXML; nomina12 = creaXmlNomina.generaComplementoNomina(listCFDIEmpleados[i], conceptoNominaSubsidio); comprobante = agregarComplementoNomina(comprobante, nomina12); } datosEmpleadoComprobates.Add(new DatosEmpleadoComprobate(listCFDIEmpleados[i], comprobante)); } } CFDIRecibo recibo; for (i = 0; i < datosEmpleadoComprobates.Count; i++) { if (datosEmpleadoComprobates[i].cfdiEmpleado.cfdiRecibo.statusXmlSat == StatusXmlSat.NINGUNO) { nombreFile = nomenclaturaNombreArchivo(tipoNomina, periodosNomina, datosEmpleadoComprobates[i].cfdiEmpleado); CreateXML(datosEmpleadoComprobates[i].comprobante, string.Concat(ruta2, nombreFile)); string cadenaOriginal = getCadenaoriginal(string.Concat(ruta2, nombreFile)); //byte[] ClavePrivada1 = razonSocial.llaveSAT; byte[] ClavePrivada1 = certificadoActual.llavePrivada; datosEmpleadoComprobates[i].comprobante.Sello = oSelloDigital.Sellar(cadenaOriginal, ClavePrivada1, certificadoActual.password); CreateXML(datosEmpleadoComprobates[i].comprobante, string.Concat(ruta2, nombreFile)); recibo = datosEmpleadoComprobates[i].cfdiEmpleado.cfdiRecibo; recibo.total = Convert.ToDouble(datosEmpleadoComprobates[i].comprobante.Total); recibo.folioCFDI = datosEmpleadoComprobates[i].comprobante.Folio; recibo.noCertificado = datosEmpleadoComprobates[i].comprobante.NoCertificado; recibo.sello = (datosEmpleadoComprobates[i].comprobante.Sello); recibo.serieCFDI = (datosEmpleadoComprobates[i].comprobante.Serie); recibo.cadenaCertificado = (datosEmpleadoComprobates[i].comprobante.Certificado); recibo.version = (datosEmpleadoComprobates[i].comprobante.Version); recibo.serie = (datosEmpleadoComprobates[i].comprobante.Serie); datosEmpleadoComprobates[i].cfdiEmpleado.cfdiRecibo = (recibo); datosEmpleadoComprobates[i].archivoByte = System.IO.File.ReadAllBytes(string.Concat(ruta2, nombreFile)); datosEmpleadoComprobates[i].nombreArchivo = nombreFile; } else if (datosEmpleadoComprobates[i].cfdiEmpleado.cfdiRecibo.statusXmlSat == StatusXmlSat.ENVIADO_SAT) { nombreFile = nomenclaturaNombreArchivo(tipoNomina, periodosNomina, datosEmpleadoComprobates[i].cfdiEmpleado); datosEmpleadoComprobates[i].archivoByte = datosEmpleadoComprobates[i].cfdiEmpleado.cfdiRecibo.xmlTimbrado; datosEmpleadoComprobates[i].nombreArchivo = nombreFile; } } List <InfoExtra> infoExtras = new List <InfoExtra>(); InfoExtra infoExtra; for (i = 0; i < datosEmpleadoComprobates.Count; i++) { datosEmpleadoComprobates[i].statusTimbrado = (StatusTimbrado.EN_PROCESO); infoExtra = new InfoExtra(); infoExtra.archivoXML = (datosEmpleadoComprobates[i].archivoByte); infoExtra.nombreArchivo = (datosEmpleadoComprobates[i].nombreArchivo); infoExtra.rfcEmisor = (datosEmpleadoComprobates[i].comprobante.Emisor.Rfc); infoExtra.rfcReceptor = (datosEmpleadoComprobates[i].comprobante.Receptor.Rfc); infoExtra.version = (datosEmpleadoComprobates[i].comprobante.Version); infoExtra.folio = (datosEmpleadoComprobates[i].comprobante.Folio); infoExtras.Add(infoExtra); if (datosEmpleadoComprobates[i].cfdiEmpleado.cfdiRecibo.statusXmlSat == StatusXmlSat.NINGUNO) { datosEmpleadoComprobates[i].cfdiEmpleado.cfdiRecibo.statusXmlSat = (StatusXmlSat.ENVIADO_SAT); datosEmpleadoComprobates[i].cfdiEmpleado.cfdiRecibo.xmlTimbrado = (datosEmpleadoComprobates[i].archivoByte); if (datosEmpleadoComprobates[i].cfdiEmpleado.id != 0) { servicioCFDIEmpleado.actualizar(datosEmpleadoComprobates[i].cfdiEmpleado, dbContextSimple); } } } //timbrar if (infoExtras.Count > 0) { //datos de timbrar desde la razon social TimbrarXmlSat timbrarXmlSat = new TimbrarXmlSat(); InfoATimbrar infoATimbrar = new InfoATimbrar(); infoATimbrar.tipoOperacion = (TipoOperacionWS.TIMBRAR); infoATimbrar.infoExtras = (infoExtras); infoATimbrar.password = configuraTimbrado.contraseña; infoATimbrar.urlWebServices = configuraTimbrado.URL; infoATimbrar.usuario = configuraTimbrado.usuario; timbreFiscalDigitales = timbrarXmlSat.generaTimbres(infoATimbrar, dbContextSimple); if (timbrarXmlSat.error != null) { mensaje.noError = 101; mensaje.resultado = (timbrarXmlSat.error); if (timbreFiscalDigitales.Count > 0) { for (i = 0; i < timbreFiscalDigitales.Count; i++) { j = 0; DatosTimbreFiscalDigital info = (DatosTimbreFiscalDigital)timbreFiscalDigitales[i]; while (j < datosEmpleadoComprobates.Count) { if (info.error != 0) { if (string.Equals((datosEmpleadoComprobates[j].folio == null ? "" : datosEmpleadoComprobates[j].folio), (info.folio == null ? "" : info.folio), StringComparison.OrdinalIgnoreCase)) { datosEmpleadoComprobates[j].cfdiEmpleado.mensaje = info.descripcion; } } j++; } } } } timbreFiscalDigitales = timbreFiscalDigitales == null ? new List <object>() : timbreFiscalDigitales; if (timbreFiscalDigitales.Count > 0) { XmlNode tfd; ConstruyeTimbreFiscalDigital11 digital11 = new ConstruyeTimbreFiscalDigital11(ruta); j = 0; listCFDIEmpleados.Clear(); for (i = 0; i < timbreFiscalDigitales.Count; i++) { while (j < datosEmpleadoComprobates.Count) { DatosTimbreFiscalDigital timbre = (DatosTimbreFiscalDigital)timbreFiscalDigitales[i]; if (string.Equals((datosEmpleadoComprobates[j].folio == null ? "" : datosEmpleadoComprobates[j].folio), (timbre.folio == null ? "" : timbre.folio), StringComparison.OrdinalIgnoreCase)) { if (string.Equals(timbre.status, "200", StringComparison.OrdinalIgnoreCase) || string.Equals(timbre.status, "307", StringComparison.OrdinalIgnoreCase)) { //CreateXMLTimbreFiscal(digital11.contruyeTimbreFiscalDigital(timbreFiscalDigitales[i]), string.Concat(ruta2, "pruebaTimbre.xml")); recibo = datosEmpleadoComprobates[j].cfdiEmpleado.cfdiRecibo; CreateXML(datosEmpleadoComprobates[j].comprobante, string.Concat(ruta2, datosEmpleadoComprobates[j].nombreArchivo)); string cadenaOriginal = getCadenaoriginal(string.Concat(ruta2, datosEmpleadoComprobates[j].nombreArchivo)); recibo.cadenaCertificado = cadenaOriginal; recibo.certificadoTimbrado = (timbre.noCertificadoSAT); recibo.noCertificadoSAT = (timbre.noCertificadoSAT); recibo.fechaHoraTimbrado = (timbre.fechaTimbrado); recibo.selloTimbrado = (timbre.selloSAT); recibo.selloSAT = (timbre.selloSAT); recibo.UUID = (timbre.uuid); recibo.rfcProvCertif = (timbre.referenciasProveedor); recibo.statusTimbrado = (StatusTimbrado.TIMBRADO); recibo.statusXmlSat = (StatusXmlSat.RECIBIDO_SAT); recibo.xmlTimbrado = (timbre.xmlTimbrado); string cadenaOriginalSAT1 = "||" + timbre.version + "|" + timbre.uuid + "|" + timbre.fechaTimbrado + "|" + timbre.referenciasProveedor; if (timbre.descripcion != "") { cadenaOriginalSAT1 += "|" + timbre.descripcion + "|" + timbre.selloCFD + "|" + timbre.noCertificadoSAT + "||"; } else { cadenaOriginalSAT1 += "|" + timbre.selloCFD + "|" + timbre.noCertificadoSAT + "||"; } recibo.cadenaOriginalTimbrado = cadenaOriginalSAT1; datosEmpleadoComprobates[j].cfdiEmpleado.recienTimbrado = (true); datosEmpleadoComprobates[j].cfdiEmpleado.cfdiRecibo = (recibo); if (datosEmpleadoComprobates[i].cfdiEmpleado.id != 0) { servicioCFDIEmpleado.actualizar(datosEmpleadoComprobates[j].cfdiEmpleado, dbContextSimple); } } else { datosEmpleadoComprobates[j].statusTimbrado = StatusTimbrado.ERROR; datosEmpleadoComprobates[j].cfdiEmpleado.cfdiRecibo.mensajeRec = (timbre.descripcion); datosEmpleadoComprobates[j].cfdiEmpleado.cfdiRecibo.statusTimbrado = StatusTimbrado.ERROR; datosEmpleadoComprobates[j].cfdiEmpleado.cfdiRecibo.statusXmlSat = StatusXmlSat.NINGUNO; datosEmpleadoComprobates[j].cfdiEmpleado.cfdiRecibo.xmlTimbrado = null; if (datosEmpleadoComprobates[j].cfdiEmpleado.id != 0) { servicioCFDIEmpleado.actualizar(datosEmpleadoComprobates[j].cfdiEmpleado, dbContextSimple); } } datosEmpleadoComprobates[j].cfdiEmpleado.mensaje = (timbre.descripcion); listCFDIEmpleados.Add(datosEmpleadoComprobates[j].cfdiEmpleado); // datosEmpleadoComprobates.RemoveAt(j); j = 0; break; } else { j++; } } } } } } if (listCFDIEmpleadosTimbrados.Count() > 0) { listCFDIEmpleados.AddRange(listCFDIEmpleadosTimbrados); // Utilerias.ordena(listCFDIEmpleados, uuidCxn); } } } catch (Exception ex) { throw; } return(listCFDIEmpleados); }
public Mensaje cargarVariablesEmpleadoAsistencias(DateTime fechaInicial, DateTime fechaFinal, CalculoUnidades calculoUnidades, PeriodosNomina periodoNomina, DateTime?fechaBajaFiniq, bool?modificarDiasTrabajados, bool acumularAsis, string claveEmpleado, string claveRazonSocial, string claveTipoNomina, string claveTipoCorrida, DateTime fechaRangoInicial, DateTime fechaRangoFinal, Dictionary <string, object> valoresConceptosEmpleados, DBContextSimple dbContextSimple) { try { inicializaVariableMensaje(); pagarPrimero3Dias = 0; if (valoresConceptosEmpleados == null) { valoresConceptosEmpleados = new Dictionary <string, object>(); } double diasAusencias = 0, diasIncapacidadEnfermedad = 0, diasIncapacidadAccidente = 0, diasIncapacidadMaternidad = 0, diasOtrasIncapacidad = 0, festivo = 0, descanso = 0, laborados = 0; double hrsExtraDoble = 0.0, hrsExtraTriple = 0.0, retardos = 0.0, permisoSinSueldo = 0.0, permisoConSueldo = 0.0, descansoLaborado = 0.0, festivoLaborado = 0.0, domingoLaborado = 0.0, diasRetardos = 0.0, diasFaltas = 0.0; List <Asistencias> listAsistencias = obtenerAsistencias(fechaInicial, fechaFinal, periodoNomina, fechaBajaFiniq, claveEmpleado, claveRazonSocial, claveTipoNomina, claveTipoCorrida, fechaRangoInicial, fechaRangoFinal, dbContextSimple); if (mensajeResultado.noError != 0) { return(mensajeResultado); } List <Asistencias> listAsistenciaIncapacidadEnfermedad = new List <Asistencias>(); int i; for (i = 0; i < listAsistencias.Count; i++) { switch (Convert.ToInt16(listAsistencias[i].excepciones.clave)) { case 0: laborados++; break; case 1: retardos += listAsistencias[i].cantidad.GetValueOrDefault(); diasRetardos++; break; case 2: if (listAsistencias[i].cantidad == null) { diasFaltas++; } else if (listAsistencias[i].cantidad.GetValueOrDefault() == 0.50) { diasFaltas = diasFaltas + 0.5; } else { diasFaltas++; } break; case 3: diasAusencias++; break; case 4: permisoConSueldo++; break; case 5: permisoSinSueldo++; break; case 6: listAsistenciaIncapacidadEnfermedad.Add(listAsistencias[i]); diasIncapacidadEnfermedad++; break; case 7: diasIncapacidadAccidente++; break; case 8: diasIncapacidadMaternidad++; break; case 9: diasOtrasIncapacidad++; break; case 10: descansoLaborado = listAsistencias[i].cantidad.GetValueOrDefault(); break; case 11: if (listAsistencias[i].excepciones.tipoDatoExcepcion == TipoDatoExcepcion.SINDATO) { festivoLaborado++; } else { festivoLaborado = listAsistencias[i].cantidad.GetValueOrDefault(); } break; case 12: domingoLaborado = listAsistencias[i].cantidad.GetValueOrDefault(); break; case 13: ///"Tiempo extra == 13" falta break; case 14: hrsExtraDoble = listAsistencias[i].cantidad.GetValueOrDefault(); break; case 15: hrsExtraTriple = listAsistencias[i].cantidad.GetValueOrDefault(); break; case 16: descanso++; break; case 17: festivo++; break; } } if (listAsistencias.Count == 0) { if (fechaRangoInicial.CompareTo(fechaRangoFinal) == 0) { laborados = 1; } else { laborados = cantidadDiasEntreDosFechas(fechaRangoInicial, fechaRangoFinal) + 1; } } if (!acumularAsis) { if (modificarDiasTrabajados == null ? true : modificarDiasTrabajados.GetValueOrDefault()) { if (valoresConceptosEmpleados.ContainsKey("Laborado".ToUpper())) { valoresConceptosEmpleados["Laborado".ToUpper()] = laborados; } else { valoresConceptosEmpleados.Add("Laborado".ToUpper(), laborados); } } valoresConceptosEmpleados["HorasExtrasDobles".ToUpper()] = hrsExtraDoble; //valoresConceptosEmpleados.Add("HorasExtrasDobles".ToUpper(), hrsExtraDoble); valoresConceptosEmpleados["HorasExtrasTriples".ToUpper()] = hrsExtraTriple; } int diasAPagar = 0; int diasApagarIMSS = 0; pagarPrimero3Dias = 0; if (listAsistenciaIncapacidadEnfermedad.Count > 0) { listAsistenciaIncapacidadEnfermedad = (from list in listAsistenciaIncapacidadEnfermedad orderby list.fecha select list).ToList(); List <RegistroIncapacidad> listRegistroIncapacidad = obtenerIncapacidadesPorEnfermedad(listAsistenciaIncapacidadEnfermedad[0].fecha.GetValueOrDefault(), listAsistenciaIncapacidadEnfermedad[listAsistenciaIncapacidadEnfermedad.Count - 1].fecha.GetValueOrDefault(), claveEmpleado, claveRazonSocial, dbContextSimple); if (mensajeResultado.noError != 0) { return(mensajeResultado); } for (i = 0; i < listRegistroIncapacidad.Count; i++) { if (listRegistroIncapacidad[i].pagarTresPrimeroDias) { int diasIncapacidadEnf = listRegistroIncapacidad[i].diasIncapacidad.GetValueOrDefault(); diasApagarIMSS = diasIncapacidadEnf; if (diasIncapacidadEnf <= 3) { diasAPagar = diasIncapacidadEnf; } else { diasAPagar = 3; } DateTime fechaIncap = listRegistroIncapacidad[i].fechaInicial.GetValueOrDefault(); for (int dias = 0; dias < diasIncapacidadEnf; dias++) { if ((fechaIncap.CompareTo(periodoNomina.fechaInicial) > 0 || fechaIncap.CompareTo(periodoNomina.fechaInicial) == 0) & (fechaIncap.CompareTo(periodoNomina.fechaFinal) == 0 || fechaIncap.CompareTo(periodoNomina.fechaFinal) < 0)) { if (diasAPagar > 0) { pagarPrimero3Dias++; } diasAPagar--; diasApagarIMSS--; } else if (fechaIncap.CompareTo(periodoNomina.fechaInicial) < 0) { diasAPagar--; diasApagarIMSS--; } else if (fechaIncap.CompareTo(periodoNomina.fechaFinal) > 0) { break; } if (diasAPagar == 0 | pagarPrimero3Dias == 3) { break; } fechaIncap.AddDays(fechaIncap.Day + 1); } //diasIncapacidadEnfermedad = diasIncapacidadEnfermedad > 3 ? diasIncapacidadEnfermedad - 3 : 0; ///diasIncapacidadEnfermedad = diasIncapacidadEnfermedad - diasUsadosPagar; } } } if (acumularAsis) { valoresConceptosEmpleados["DiasIncapacidadEmpleadoAcum".ToUpper()] = diasIncapacidadEnfermedad + diasIncapacidadAccidente + diasIncapacidadMaternidad + diasOtrasIncapacidad; valoresConceptosEmpleados["FaltasAcum".ToUpper()] = diasFaltas; valoresConceptosEmpleados["AusentismoAcum".ToUpper()] = diasAusencias; } else { valoresConceptosEmpleados["IncapacidadEnfermedad".ToUpper()] = diasIncapacidadEnfermedad; valoresConceptosEmpleados["IncapacidadAccidente".ToUpper()] = diasIncapacidadAccidente; valoresConceptosEmpleados["IncapacidadMaternidad".ToUpper()] = diasIncapacidadMaternidad; valoresConceptosEmpleados["OtrasIncapacidad".ToUpper()] = diasOtrasIncapacidad; valoresConceptosEmpleados["DiasIncapacidadEmpleado".ToUpper()] = diasIncapacidadEnfermedad + diasIncapacidadAccidente + diasIncapacidadMaternidad + diasOtrasIncapacidad; valoresConceptosEmpleados["Faltas".ToUpper()] = diasFaltas;//Parametro 128 0 dias dias faltas if (modificarDiasTrabajados == null ? true : !modificarDiasTrabajados.GetValueOrDefault()) { valoresConceptosEmpleados["Ausentismo".ToUpper()] = diasAusencias; } valoresConceptosEmpleados["TExtrasDiaDescanso".ToUpper()] = descansoLaborado; valoresConceptosEmpleados["TExtrasDiaFestivo".ToUpper()] = festivoLaborado; valoresConceptosEmpleados["TExtrasDiaDomingo".ToUpper()] = domingoLaborado; valoresConceptosEmpleados["Retardos".ToUpper()] = retardos; valoresConceptosEmpleados["DiasRetardos".ToUpper()] = diasRetardos; valoresConceptosEmpleados["PermisoConSueldo".ToUpper()] = permisoConSueldo; valoresConceptosEmpleados["PermisoSinSueldo".ToUpper()] = permisoSinSueldo; valoresConceptosEmpleados["DiasFestivos".ToUpper()] = festivo; valoresConceptosEmpleados["DiasDescanso".ToUpper()] = descanso; valoresConceptosEmpleados["DiasIncapacidadEmpresa".ToUpper()] = pagarPrimero3Dias; valoresConceptosEmpleados["DiasIncapacidadIMSS".ToUpper()] = diasApagarIMSS; if (calculoUnidades != null) { if (modificarDiasTrabajados == null ? true : modificarDiasTrabajados.GetValueOrDefault()) { calculoUnidades.diasTrabajados = laborados; } calculoUnidades.hrsExtraDoble = hrsExtraDoble; calculoUnidades.hrsExtraTriple = hrsExtraTriple; calculoUnidades.diasIncapacidadEnfermedad = Convert.ToInt32(diasIncapacidadEnfermedad); calculoUnidades.diasIncapacidadAccidente = Convert.ToInt32(diasIncapacidadAccidente); calculoUnidades.diasIncapacidadMaternidad = Convert.ToInt32(diasIncapacidadMaternidad); calculoUnidades.diasOtrasIncapacidades = Convert.ToInt32(diasOtrasIncapacidad); calculoUnidades.diasFalta = diasFaltas; if (modificarDiasTrabajados == null ? true : !modificarDiasTrabajados.GetValueOrDefault()) { calculoUnidades.diasAusentismo = Convert.ToInt32(diasAusencias); } calculoUnidades.diasDescansoLaborado = descansoLaborado; calculoUnidades.diasFestivoLaborado = festivoLaborado; calculoUnidades.diasDomingoLaborado = domingoLaborado; calculoUnidades.diasRetardo = retardos; calculoUnidades.diasPermisoConSueldo = permisoConSueldo; calculoUnidades.diasPermisoSinSueldo = permisoSinSueldo; calculoUnidades.diasFestivo = Convert.ToInt32(festivo); calculoUnidades.diasDescanso = Convert.ToInt32(descanso); } } mensajeResultado.noError = 0; mensajeResultado.resultado = valoresConceptosEmpleados; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(concatena.Remove(0, concatena.Length).Append(msgError).Append("cargarVariablesEmpleadoAsistencias()1_Error: ").Append(ex)); mensajeResultado.noError = ControlErroresEntity.buscaNoErrorPorExcepcion(ex); mensajeResultado.error = ex.GetBaseException().ToString(); } return(mensajeResultado); }
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); }
public List <CFDIEmpleado> generaDatosATimbrar(List <DatosParaTimbrar> datosParaTimbrados, PeriodosNomina periodoNomina, TipoNomina nomina, TipoCorrida tipoCorrida, DateTime fechaActual, RazonesSociales razonesSocialesActual) { if (datosParaTimbrados == null) { return(null); } // camposNecesariosMsg = new StringBuilder(); int i; CFDIEmpleado cfdiEmpleado; CFDIRecibo cfdiRecibo; List <CFDIEmpleado> listCFDIEmpleado = new List <CFDIEmpleado>(); for (i = 0; i < datosParaTimbrados.Count(); i++) { if (camposNecesariosMsg.Length > 0) { camposNecesariosMsg.Remove(0, camposNecesariosMsg.Length); } cfdiEmpleado = costruyeCFDIEmpleado(datosParaTimbrados[i].datosPorEmpleado, periodoNomina, tipoCorrida, nomina, fechaActual, razonesSocialesActual); cfdiRecibo = construyeCFDIRecibo(datosParaTimbrados[i].movimientos, datosParaTimbrados[i].datosHorasExtras, datosParaTimbrados[i].datosIncapacidades, fechaActual); cfdiEmpleado.mensaje = (camposNecesariosMsg.ToString()); cfdiEmpleado.cfdiRecibo = (cfdiRecibo); if (camposNecesariosMsg.Length == 0) { cfdiEmpleado.statusGeneraInfo = (true); } else { cfdiEmpleado.statusGeneraInfo = (false); } listCFDIEmpleado.Add(cfdiEmpleado); } return(listCFDIEmpleado); }
public Mensaje agregarVacacionesAuto(RazonesSociales razonSocial, PlazasPorEmpleadosMov plaEmp, PeriodosNomina periodoNomina, object[,] tablaFactorIntegracion, PagarPrimaVacionalyVacacionesAuto pagarVacaAuto, DBContextSimple dbContextSimple) { try { VacacionesDisfrutadas vacDis = new VacacionesDisfrutadas(); Mensaje vacDisgau = new Mensaje(); VacacionesDisfrutadas vacDisconId = new VacacionesDisfrutadas(); VacacionesDisfrutadasDAO vacaDisfrutadas = new VacacionesDisfrutadasDAO(); VacacionesAplicacion VacAplic = new VacacionesAplicacion(); VacacionesDevengadas vacacionesDeven = null; DateTime fechaEmplado = new DateTime(); if (vacDev.getDevengadaActual() == null || vacDev.getDevengadaActual().Count == 0) { mensajeResultado = calcularVacacionesDevengadasEmpleados(razonSocial, tablaFactorIntegracion, dbContextSimple, null); if (mensajeResultado.noError != 0) { return(mensajeResultado); } } if (vacDev.getDevengadaActual().Count > 0) { vacacionesDeven = vacDev.getDevengadaActual()[plaEmp.plazasPorEmpleado.empleados.clave]; DateTime calfecha = new DateTime(); DateTime fechaActual = DateTime.Now.Date; DateTime calfechaActual = DateTime.Now; if (vacacionesDeven != null) { vacacionAplicacionActual = new VacacionesAplicacion(); calfecha = plaEmp.plazasPorEmpleado.fechaPrestaciones.Value; calfecha.AddYears(calfecha.Year + vacacionesDeven.ejercicio.Value); fechaEmplado = calfecha.Date; DateTime fechaPerIni = periodoNomina.fechaInicial.Value.Date; DateTime fechaPerFinal = periodoNomina.fechaFinal.Value.Date; if (fechaEmplado.CompareTo(fechaPerIni) >= 0 && fechaEmplado.CompareTo(fechaPerFinal) <= 0) { if (pagarVacaAuto == PagarPrimaVacionalyVacacionesAuto.PRIMACACIONALALANIVERSARIO) { vacDis.empleados = plaEmp.plazasPorEmpleado.empleados; vacDis.diasPrimaDisfrutados = vacacionesDeven.diasPrimaVaca; vacDis.diasVacDisfrutados = (0); vacDis.ejercicioAplicacion = calfechaActual.Year; vacDis.pagarPrimaVacacional = true; vacDis.pagarVacaciones = false; vacDis.periodoAplicacion = periodoNomina; vacDis.periodoPago = periodoNomina; vacDis.razonesSociales = razonSocial; vacDis.registroInicial = false; vacDis.regresoVac = calfechaActual; vacDis.salidaVacac = calfechaActual; vacDis.statusVacaciones = StatusVacaciones.PORCALCULAR; vacDis.tipoNominaAplicacion = periodoNomina.tipoNomina; vacDis.tipoCorridaAplicacion = periodoNomina.tipoCorrida; dbContextSimple.Set <VacacionesDisfrutadas>().Add(vacDis); dbContextSimple.SaveChanges(); vacDisconId = vacDis; VacAplic.diasPrima = vacacionesDeven.diasPrimaVaca; VacAplic.diasVac = 0; VacAplic.vacacionesDevengadas = vacacionesDeven; VacAplic.vacacionesDisfrutadas = vacDisconId; dbContextSimple.Set <VacacionesAplicacion>().AddOrUpdate(VacAplic); dbContextSimple.SaveChanges(); vacacionAplicacionActual = VacAplic; } else if (pagarVacaAuto == PagarPrimaVacionalyVacacionesAuto.PRIMACACIONALYVACACIONESALANIVERSARIO) { vacDis.empleados = plaEmp.plazasPorEmpleado.empleados; vacDis.diasPrimaDisfrutados = vacacionesDeven.diasPrimaVaca; vacDis.diasVacDisfrutados = vacacionesDeven.diasVacaciones; vacDis.ejercicioAplicacion = calfechaActual.Year; vacDis.pagarPrimaVacacional = true; vacDis.pagarVacaciones = false; vacDis.periodoAplicacion = periodoNomina; vacDis.periodoPago = periodoNomina; vacDis.razonesSociales = razonSocial; vacDis.registroInicial = false; vacDis.regresoVac = calfechaActual; vacDis.salidaVacac = calfechaActual; vacDis.statusVacaciones = StatusVacaciones.PORCALCULAR; vacDis.tipoNominaAplicacion = periodoNomina.tipoNomina; dbContextSimple.Set <VacacionesDisfrutadas>().Add(vacDis); dbContextSimple.SaveChanges(); vacDisconId = vacDis; VacAplic.diasPrima = vacacionesDeven.diasPrimaVaca; VacAplic.diasVac = vacacionesDeven.diasVacaciones; VacAplic.vacacionesDevengadas = vacacionesDeven; VacAplic.vacacionesDisfrutadas = vacDisconId; dbContextSimple.Set <VacacionesAplicacion>().AddOrUpdate(VacAplic); dbContextSimple.SaveChanges(); vacacionAplicacionActual = VacAplic; } } } } mensajeResultado.resultado = vacacionAplicacionActual; mensajeResultado.noError = 0; mensajeResultado.error = ""; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(concatena.Remove(0, concatena.Length).Append(msgError).Append("agregarVacacionesAuto()1_Error: ").Append(ex)); mensajeResultado.noError = ControlErroresEntity.buscaNoErrorPorExcepcion(ex); mensajeResultado.error = ex.GetBaseException().ToString(); mensajeResultado.resultado = null; dbContextSimple.Database.CurrentTransaction.Rollback(); } return(mensajeResultado); }
public Mensaje cargarVariablesEmpleadoVacaciones(CalculoUnidades calculoUnidades, PlazasPorEmpleadosMov plazasPorEmpleadosMovEjecutandose, bool acumularVac, PeriodosNomina periodoNomina, DateTime?fechaBajaFiniq, string claveTipoNomina, string claveCorrida, Dictionary <string, object> valoresConceptosEmpleados, DBContextSimple dbContextSimple) { int x; int diasVacaciones = 0; double diasPrimaVacacional = 0.0; try { bool corridaVacaciones = false; if (String.Equals(claveCorrida, "VAC", StringComparison.OrdinalIgnoreCase)) { corridaVacaciones = true; } List <VacacionesAplicacion> vacacionesAplicacion = obtenerVacaciones(periodoNomina, plazasPorEmpleadosMovEjecutandose, fechaBajaFiniq, claveTipoNomina, claveCorrida, corridaVacaciones, dbContextSimple); if (mensajeResultado.noError != 0) { return(mensajeResultado); } if (vacacionAplicacionActual != null) { // vacacionesAplicacion.add(vacacionAplicacionActual); } vacacionesAplicacionStatus = vacacionesAplicacion; DateTime fechaSalidaVacaciones = new DateTime(), fechaRegresoVacaciones = new DateTime(); fechaSalidaVacaciones.AddYears(1900); fechaRegresoVacaciones.AddYears(1900); TiposVacaciones tipoVacaciones = null; if (vacacionesAplicacion != null) { for (x = 0; x < vacacionesAplicacion.Count; x++) { fechaSalidaVacaciones = vacacionesAplicacion[x].vacacionesDisfrutadas.salidaVacac.GetValueOrDefault(); if (vacacionesAplicacion[x].vacacionesDisfrutadas.regresoVac != null) { fechaRegresoVacaciones = vacacionesAplicacion[x].vacacionesDisfrutadas.regresoVac.GetValueOrDefault(); } if (vacacionesAplicacion[x].diasVac == null) { vacacionesAplicacion[x].diasVac = 0; } diasVacaciones += vacacionesAplicacion[x].diasVac.GetValueOrDefault(); if (vacacionesAplicacion[x].diasPrima == null) { vacacionesAplicacion[x].diasPrima = 0.0; } diasPrimaVacacional += vacacionesAplicacion[x].diasPrima.GetValueOrDefault(); tipoVacaciones = vacacionesAplicacion[x].vacacionesDisfrutadas.tiposVacaciones; if (corridaVacaciones) { bool asigno = false; if (vacacionesAplicacion[x].diasPrima > 0.0) { vacacionesAplicacion[x].vacacionesDisfrutadas.periodoPago = periodoNomina; asigno = true; } if (vacacionesAplicacion[x].diasVac > 0) { vacacionesAplicacion[x].vacacionesDisfrutadas.periodoPago = periodoNomina; asigno = true; } if (asigno) { dbContextSimple.Set <VacacionesDisfrutadas>().AddOrUpdate(vacacionesAplicacion[x].vacacionesDisfrutadas); } } // fechaContador.setTime(fechaInicialVacaciones.getTime()); // while (!fechaContador.after(fechaRegresoVacaciones)) { // if ((fechaContador.getTime().compareTo(fechaInicial) > 0 || fechaContador.getTime().compareTo(fechaInicial) == 0) // & (fechaContador.getTime().compareTo(fechaFinal) == 0 || fechaContador.getTime().compareTo(fechaFinal) < 0)) { // diasVacacionesDisfPeriodo += 1; // } // // fechaContador.add(Calendar.DATE, 1); // } } } if (acumularVac) { valoresConceptosEmpleados["diasVacacionesAcum".ToUpper()] = diasVacaciones; } else { valoresConceptosEmpleados["fechaSalidaVacaciones".ToUpper()] = fechaSalidaVacaciones; valoresConceptosEmpleados["fechaRegresoVacaciones".ToUpper()] = fechaRegresoVacaciones; //////// valoresConceptosEmpleados.put("fechaInicialTrabajadas".toUpperCase(), (Date) fechaInicialTrabajadas.getTime()); //////// valoresConceptosEmpleados.put("fechaFinalTrabajadas".toUpperCase(), (Date) fechaFinalTrabajadas.getTime()); //////////// valoresConceptosEmpleados.put("diasVacacionesDisfrutadas".toUpperCase(), (Integer) diasVacacionesDisfrutadas); //////////// valoresConceptosEmpleados.put("diasVacacionesTrabajadas".toUpperCase(), (Integer) diasVacacionesTrabajadas); //////// valoresConceptosEmpleados.put("diasVacacionesDisfrutadas".toUpperCase(), (Integer) diasVacacionesDisfPeriodo); //////// valoresConceptosEmpleados.put("diasVacacionesTrabajadas".toUpperCase(), (Integer) diasVacacionesTrabPeriodo); //////////// valoresConceptosEmpleados.put("diasVacacionesDisfPeriodo".toUpperCase(), (Integer) diasVacacionesDisfPeriodo); //////////// valoresConceptosEmpleados.put("diasVacacionesTrabPeriodo".toUpperCase(), (Integer) diasVacacionesTrabPeriodo); valoresConceptosEmpleados["diasVacaciones".ToUpper()] = Convert.ToDouble(diasVacaciones); valoresConceptosEmpleados["diasPrima".ToUpper()] = diasPrimaVacacional; valoresConceptosEmpleados["tipoVacaciones".ToUpper()] = tipoVacaciones == null ? "" : tipoVacaciones.nombre; if (calculoUnidades != null) { calculoUnidades.diasPrimaVacacional = diasPrimaVacacional; calculoUnidades.diasVacaciones = diasVacaciones; calculoUnidades.tiposVacaciones = tipoVacaciones; } } mensajeResultado.noError = 0; mensajeResultado.resultado = valoresConceptosEmpleados; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(concatena.Remove(0, concatena.Length).Append(msgError).Append("cargarVariablesEmpleadoVacaciones()1_Error: ").Append(ex)); mensajeResultado.noError = ControlErroresEntity.buscaNoErrorPorExcepcion(ex); mensajeResultado.error = ex.GetBaseException().ToString(); mensajeResultado.resultado = null; } return(mensajeResultado); }