Beispiel #1
0
        public ActionResult Index()
        {
            Usuarios usuario  = db.Usuarios.Where(x => x.Usuario == User.Identity.Name).FirstOrDefault();
            Clientes clientes = db.GetClientes(null, true, 0).Where(x => x.IdUsuario == usuario.Id).FirstOrDefault();

            if (clientes == null)
            {
                Empleados empleado = db.GetEmpleados(0, null).Where(x => x.IdUsuario == usuario.Id).FirstOrDefault();
                ViewBag.Nombre          = empleado.Nombre;
                ViewBag.ApellidoPaterno = empleado.ApellidoPaterno;
                ViewBag.ApellidoMaterno = empleado.ApellidoMaterno;
                ViewBag.Pais            = "Mexico";
                ViewBag.Telefono        = empleado.Telefono;
            }
            else
            {
                ViewBag.Nombre          = clientes.Nombres;
                ViewBag.ApellidoPaterno = clientes.ApellidoPaterno;
                ViewBag.ApellidoMaterno = clientes.ApellidoMaterno;
                ViewBag.Pais            = clientes.Pais;
                ViewBag.Telefono        = clientes.Telefono;
                ViewBag.Sexo            = clientes.Sexo;
            }

            return(View());
        }
Beispiel #2
0
        public ActionResult Editar(Guid IdTemp)
        {
            EmpleadoView Empleado = new EmpleadoView();

            Empleado.Bancos          = db.Bancos.ToList();
            Empleado.Contratos       = db.Contratos.ToList();
            Empleado.Deducciones     = db.Deducciones.ToList();
            Empleado.Estados         = db.Estados.OrderBy(x => x.NombreEstado).ToList();
            Empleado.Empleado        = db.GetEmpleados(1, IdTemp).FirstOrDefault();
            Empleado.Horas           = db.Horas.ToList();
            Empleado.Incapacidad     = db.Incapacidades.ToList();
            Empleado.Jornadas        = db.Jornadas.ToList();
            Empleado.Nomina          = db.Nominas.ToList();
            Empleado.NominaHistorial = db.NominaHistorial.Where(x => x.Id == Empleado.Empleado.IdPlantilla).FirstOrDefault();
            if (Empleado.NominaHistorial != null)
            {
                Empleado.NominaPercepciones      = db.NominaPercepciones.Where(x => x.Id == Empleado.NominaHistorial.IdPercepciones).FirstOrDefault();
                Empleado.NominaPercepcion        = db.NominaPercepcion.Where(x => x.IdPercepciones == Empleado.NominaPercepciones.Id).ToList();
                Empleado.JubilacionPensionRetiro = db.NominaJubilacionPensionRetiro.Where(x => x.Id == Empleado.NominaPercepciones.IdJubilacionPensionRetiro).FirstOrDefault();
                Empleado.SeparacionIndemnizacion = db.NominaSeparacionIndemnizacion.Where(x => x.Id == Empleado.NominaPercepciones.IdSeparacionIndemnizacion).FirstOrDefault();
                List <NominaHorasExtras> NominaHorasExtras = db.NominaHorasExtras.ToList();
                Empleado.NominaHorasExtras = new List <Model.NominaHorasExtras>();
                foreach (var percepcion in Empleado.NominaPercepcion)
                {
                    foreach (var HorasExtras in NominaHorasExtras.Where(x => x.IdPercepcion == percepcion.Id))
                    {
                        Empleado.NominaHorasExtras.Add(HorasExtras);
                    }
                }
                Empleado.NominaDeducion    = db.NominaDeduccion.Where(x => x.IdNominaHistorial == Empleado.NominaHistorial.Id).ToList();
                Empleado.NominaIncapacidad = db.NominaIncapacidad.Where(x => x.IdNominaHistorial == Empleado.NominaHistorial.Id).ToList();
                Empleado.NominaOtroPago    = db.NominaOtrosPago.Where(x => x.IdNominaHistorial == Empleado.NominaHistorial.Id).ToList();
            }
            Empleado.OtrosPagos       = db.OtrosPagos.ToList();
            Empleado.PAC              = db.GetPAC(null, 0).ToList();
            Empleado.Percepciones     = db.Percepciones.ToList();
            Empleado.PeriodicidadPago = db.PeriodicidadPago.ToList();
            Empleado.Regimen          = db.Regimen.ToList();
            Empleado.RiesgoPuesto     = db.RiesgoPuesto.ToList();
            return(PartialView(Empleado));
        }
Beispiel #3
0
        public ActionResult Nuevo(string Tipo, string Permiso, Guid Id, string Usuario, int Timbres, string Contrasena)
        {
            try
            {
                Guid IdUsuario = Guid.NewGuid();
                if (Tipo == "Cliente")
                {
                    Clientes cliente = db.GetClientes(Id, true, 1).First();

                    /* db.UpdateClientes(Id, cliente.IdProveedor, cliente.NumeroDeCuenta, cliente.NumeroTelefonoAlarma,
                     *   cliente.PalabraClave, cliente.PalabraClaveSilenciosa, cliente.Nombres, cliente.ApellidoPaterno, cliente.ApellidoMaterno,
                     *   cliente.Calle, cliente.NoInterior, cliente.NoExterior, cliente.Colonia, cliente.CodigoPostal, cliente.Telefono,
                     *   cliente.TelefonoTrabajo, cliente.TelefonoCelular, Usuario, cliente.Foto, cliente.Estado, cliente.Pais, cliente.Ciudad,
                     *   cliente.TipoAfilacion, cliente.NumeroPatrocinador, cliente.FechaNacimiento, cliente.LugarNacimiento, cliente.Sexo,
                     *   cliente.EstadoCivil, cliente.Profesion, cliente.CURP, cliente.RFC, cliente.NumCtaPago, cliente.ClaveBancaria, cliente.Banco,
                     *   cliente.NumeroCLABE, cliente.Beneficiario, cliente.FechaCreacion, cliente.UsuarioCreacion, true, IdUsuario);*/
                }
                else
                {
                    Empleados empleado = db.GetEmpleados(0, null).Where(x => x.Id == Id).First();
                    db.UpdateEmpleado(empleado.Id, empleado.NoEmpleado, empleado.IdProveedor, empleado.Nombre, empleado.ApellidoMaterno,
                                      empleado.ApellidoPaterno, IdUsuario, Usuario, empleado.FechaNacimiento, empleado.FechaInicioRelLaboral,
                                      empleado.RFC, empleado.CURP, empleado.HuellaDactilar, empleado.Foto, empleado.INE, empleado.NumeroSeguridadSocial,
                                      empleado.Departamento, empleado.Direccion, empleado.Puesto, empleado.RiesgoPuesto, empleado.TipoContrato, empleado.TipoJornada,
                                      empleado.SalarioDiario, empleado.Banco, empleado.CuentaBancaria, empleado.ClaveEntFed, empleado.GradoEstudios, empleado.Telefono,
                                      empleado.TelefonoEmergencia, empleado.Firma, empleado.TipoSangre, empleado.CUIP, empleado.NumeroDeLicencia, empleado.NumeroDeAutorizacion,
                                      empleado.IdPlantilla, true);
                }
                db.InsertUsuario(IdUsuario, Usuario, Helpers.SHA1.Encode(Contrasena), Tipo, Permiso, true, Timbres, 0, 0, true);
            }
            catch (Exception ex)
            {
                return(Json(new { error = true, Message = ex.Message }, JsonRequestBehavior.AllowGet));
            }
            return(Json(new { error = false }, JsonRequestBehavior.AllowGet));
        }
Beispiel #4
0
        public ActionResult Index()
        {
            List <Clientes> Clientes;

            if (User.IsInRole("Admin"))
            {
                Clientes = db.GetClientes(null, true, 0).ToList();
            }
            else
            {
                Usuarios         usuario  = db.Usuarios.Where(x => x.Usuario == User.Identity.Name).FirstOrDefault();
                List <Empleados> empleado = db.GetEmpleados(0, null).Where(x => x.IdUsuario == usuario.Id).ToList();
                if (empleado.Count > 0)
                {
                    Clientes = db.GetClientes(null, true, 0).Where(x => x.IdProveedor == empleado.First().IdProveedor).ToList();
                }
                else
                {
                    Clientes cliente = db.GetClientes(null, true, 0).Where(x => x.IdUsuario == usuario.Id).First();
                    Clientes = db.GetClientes(null, true, 0).Where(x => x.IdProveedor == cliente.IdProveedor).ToList();
                }
            }
            return(View(Clientes));
        }
Beispiel #5
0
        public ActionResult Index()
        {
            List <Empleados> Empleado = db.GetEmpleados(0, null).ToList();

            return(View(Empleado));
        }
        public ActionResult Generar(Guid IdNominaHistorial)
        {
            NominaHistorial           nominaHistorial    = db.GetNominaHistorial(1, IdNominaHistorial).First();
            Empleados                 Empleado           = db.GetEmpleados(1, nominaHistorial.IdEmpleado).First();
            GetPAC_Result             PAC                = db.GetPAC(nominaHistorial.IdProveedor, 1).First();
            List <NominaDeduccion>    NominaDeducciones  = db.NominaDeduccion.Where(x => x.IdNominaHistorial == IdNominaHistorial).ToList();
            List <NominaPercepciones> NominaPercepciones = db.NominaPercepciones.Where(x => x.IdNominaHistorial == IdNominaHistorial).ToList();
            List <Model.CFDI>         CFDIs              = db.GetCFDI(null, 0).Where(x => x.IdProveedor == PAC.Id).ToList();

            int FolioFactura = 1;

            if (CFDIs.Count > 0)
            {
                FolioFactura = CFDIs.Max(x => x.Folio).Value + 1;
            }

            GeneraCFDI obj  = new GeneraCFDI();
            string     PATH = "~/Certificados/" + PAC.RFC;
            string     CER  = Server.MapPath(PATH + "/" + PAC.RFC + ".cer");
            string     KEY  = Server.MapPath(PATH + "/" + PAC.RFC + ".key");

            obj.agregarCertificado(CER);
            double SubTotal   = NominaPercepciones.Sum(x => x.ImporteGravado + x.ImporteExcento).Value;
            double Descuento  = NominaDeducciones.Sum(x => x.Importe);
            double OtrosPagos = 0;
            double TotalImpuestosRetenidos = NominaDeducciones.Where(x => x.Tipo.Contains("002")).Sum(x => x.Importe);
            double TotalOtrasDeducciones   = NominaDeducciones.Where(x => !x.Tipo.Contains("002")).Sum(x => x.Importe);

            obj.agregarComprobante33("A", "" + FolioFactura, System.DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss"), "99", "", SubTotal, Descuento, "MXN", "", SubTotal - Descuento, "N", "PUE", "22210", "");
            obj.agregarEmisor(PAC.RFC, PAC.Nombre, PAC.RegimenFiscal);
            TimeSpan Time = (nominaHistorial.FechaFinalPago - Empleado.FechaInicioRelLaboral.Value);
            DateTime A    = new DateTime();

            A = A + Time;

            int    Semanas                = Time.Days / 7;
            string Antiguedad             = "P" + Semanas + "W";
            int    DiasDeVacaciones       = CalcularDiasDeVacaciones(A);
            string SalarioDiarioIntegrado = ((double)(((365 + 15 + (DiasDeVacaciones * 0.25)) / 365) * Empleado.SalarioDiario)).ToString("f2");

            obj.agregarReceptor(Empleado.RFC, Empleado.Nombre + " " + Empleado.ApellidoPaterno + " " + Empleado.ApellidoMaterno, "", "", "P01");
            obj.agregarConcepto("84111505", "", 1, "ACT", "", "Pago de nómina", NominaPercepciones.Sum(x => x.ImporteGravado).Value, NominaPercepciones.Sum(x => x.ImporteGravado).Value, NominaDeducciones.Sum(x => x.Importe));
            //Nomina
            obj.agregarNomina12("1.2", "O", nominaHistorial.FechaPago.ToString("yyyy-MM-dd"), nominaHistorial.FechaInicialPago.ToString("yyyy-MM-dd"),
                                nominaHistorial.FechaFinalPago.ToString("yyyy-MM-dd"), nominaHistorial.NumeroDiasPagados.ToString(), SubTotal.ToString("f2"), Descuento.ToString("f2"), "0");
            obj.agregarNominaEmisor12(PAC.CURP, PAC.RegistroPatronal, PAC.RfcPatronOrigen);
            obj.agregarNominaReceptor12(Empleado.CURP, Empleado.NumeroSeguridadSocial, Empleado.FechaInicioRelLaboral.Value.ToString("yyyy-MM-dd"), Antiguedad,
                                        Empleado.TipoContrato, "No", Empleado.TipoJornada, "02", Empleado.NoEmpleado.ToString(),
                                        Empleado.Departamento, Empleado.Puesto, Empleado.RiesgoPuesto, nominaHistorial.PeriodicidadPago, Empleado.Banco, Empleado.CuentaBancaria,
                                        "0", SalarioDiarioIntegrado, Empleado.ClaveEntFed);

            double TotalPercepciones = NominaPercepciones.Sum(x => x.ImporteGravado + x.ImporteExcento).Value, TotalPercepcionesTemp = 0;

            obj.agregarNominaPercepciones12(NominaPercepciones.Sum(x => x.ImporteGravado + x.ImporteExcento).Value.ToString("f2"), "0", "0", NominaPercepciones.Sum(x => x.ImporteGravado).Value.ToString("f2"), NominaPercepciones.Sum(x => x.ImporteExcento).Value.ToString("f2"));
            foreach (var item in NominaPercepciones)
            {
                obj.agregarNominaPercepcionesPercepcion12(item.Tipo, item.Clave, item.Concepto, item.ImporteGravado.Value.ToString("f2"), item.ImporteExcento.Value.ToString("f2"));
                TotalPercepcionesTemp += item.ImporteGravado.Value + item.ImporteExcento.Value;
            }

            obj.agregarNominaDeducciones12(TotalOtrasDeducciones.ToString("f2"), TotalImpuestosRetenidos.ToString("f2"));
            foreach (var item in NominaDeducciones)
            {
                obj.agregarNominaDeduccionesDeduccion12(item.Tipo, item.Clave, item.Concepto, item.Importe.ToString("f2"));
            }

            obj.GeneraXML(KEY, PAC.ContrasenaLlave);
            string XML  = obj.Xml.Replace("Sello=\"\"", "Sello=\"" + obj.SelloEmisor + "\"");
            //obj.UUID;
            //obj.Serie;
            string NombreArchivo = Empleado.RFC + "_" + FolioFactura + "_" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day + "_SinTimbrar";
            string File = Server.MapPath("~/Facturas/" + PAC.RFC + "/Nominas/" + NombreArchivo + ".xml");

            Tools.NumLetra NL = new Tools.NumLetra();
            System.IO.File.WriteAllText(File, XML);
            byte[] CFDI;
            obj.TimbrarCfdiArchivo(File, PAC.Usuario, PAC.Contrasena, "http://generacfdi.com.mx/rvltimbrado/service1.asmx", File.Replace(NombreArchivo + ".xml", ""), NombreArchivo.Replace("_SinTimbrar", ""), true);
            if (obj.MensajeError == "")
            {
                System.IO.File.WriteAllText(File.Replace("_SinTimbrar", ""), obj.XmlTimbrado);
                CFDI = System.IO.File.ReadAllBytes(File.Replace("_SinTimbrar", ""));
                db.InsertCFDI(Guid.Parse(obj.UUID), "Nomina", FolioFactura, CFDI, "~\\Facturas\\" + PAC.RFC + "\\Nominas\\" + NombreArchivo.Replace("_SinTimbrar.xml", ""),
                              null, Empleado.Id, PAC.Id, false, DateTime.Now, User.Identity.Name);
                var base64 = "";
                if (PAC.Logo != null)
                {
                    base64 = Convert.ToBase64String(PAC.Logo);
                }
                else
                {
                    base64 = Convert.ToBase64String(System.IO.File.ReadAllBytes(Server.MapPath("~/Images/Avenzo_Logo_Header.png")));
                }
                var imgSrc = String.Format("data:image/gif;base64,{0}", base64);
                db.InsertCFDIPorOperacion(Guid.NewGuid(), IdNominaHistorial, null, Guid.Parse(obj.UUID));
                CultureInfo CI = CultureInfo.CreateSpecificCulture("es-MX");
                PDF.CrearNomina(Server.MapPath("/"), NombreArchivo, nominaHistorial.LugarExpedicion, PAC.RFC, PAC.Nombre, "", "", obj.UUID,
                                obj.NoCertificadoPac, obj.Folio, obj.Serie, obj.FechaEmision, Empleado.Nombre + " " + Empleado.ApellidoPaterno + " " + Empleado.ApellidoMaterno,
                                Empleado.Departamento, Empleado.RFC, Empleado.Puesto, imgSrc, Empleado.CURP, Empleado.NumeroSeguridadSocial,
                                nominaHistorial.NumeroDiasPagados.ToString(), nominaHistorial.FechaPago.ToString("yyyy-MM-dd"), nominaHistorial.FechaInicialPago.ToString("yyyy-MM-dd"), nominaHistorial.FechaFinalPago.ToString("yyyy-MM-dd"), NL.Convertir((SubTotal - Descuento).ToString("f2"), true, "MXN"),
                                "NA", Empleado.CuentaBancaria, PAC.RegimenFiscal, TotalImpuestosRetenidos.ToString("C2", CI), (SubTotal - Descuento).ToString("C2", CI), obj.SelloEmisor,
                                obj.SelloSat, obj.CadenaOriginal, NominaPercepciones, NominaDeducciones);
                return(Json(new { error = "none", Id = obj.UUID }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json(new { error = "Error a Timbrar", Message = obj.MensajeError }, JsonRequestBehavior.AllowGet));
            }
        }
Beispiel #7
0
        public ActionResult _Nuevo()
        {
            List <Empleados> empleados = db.GetEmpleados(0, null).ToList();

            return(PartialView(empleados));
        }