public static int AgregarEmpDesdeExcel(List <List <string> > ExcelEmp, remuneracionesContext db) { int Result = 0; ExcelEmp.RemoveAt(0); List <Tbempleados> EmpleadoToEmpresa = new List <Tbempleados>(); FichaEmpresa ObjEmpresa = new FichaEmpresa(); ObjEmpresa.RazonSocial = "TestEmpresa"; ObjEmpresa.lstEmpleados = EmpleadoToEmpresa; ObjEmpresa.Comuna = 1; ObjEmpresa.Direccion = "Barca 2560"; ObjEmpresa.Principal = true; ObjEmpresa.Rut = "13519830-7"; ObjEmpresa.TipoEmpresa = 1; ObjEmpresa.Giro = "Venta de weas"; ObjEmpresa.RepresentanteLegal = "PedritoVega"; ObjEmpresa.RutRepresentanteLegal = "19507432-1"; ObjEmpresa.Vigente = true; ObjEmpresa.FormaPagoGratif = 1; ObjEmpresa.FormPagoMoviColacion = 1; foreach (List <string> Columna in ExcelEmp) { string AFPExcel = Columna[23]; var AFPempleado = db.AfpModel.SingleOrDefault(AFP => AFP.NombreAfp == AFPExcel); string Rut = Columna[0]; string Nombre = Columna[1]; string Apellido = Columna[2]; string Nacionalidad = Columna[7]; int Telefono = Convert.ToInt32(Columna[9]); string Cargo = Columna[17]; //La idea es que Cargo sea un int decimal SueldoBase = Convert.ToDecimal(Columna[30]); decimal Movilizacion = Convert.ToDecimal(Columna[31]); decimal Colacion = Convert.ToDecimal(Columna[32]); CargosModel CargoACrear = new CargosModel() { Nombre = Cargo, Detalle = "Sin Detalle" }; db.CargosModel.Add(CargoACrear); db.SaveChanges(); DateTime FechaNacimiento = Utiles.ToDD_MM_AAAA_Multi(Columna[3]); SueldoEmpleado ObjSueldo = new SueldoEmpleado { SueldoBase = SueldoBase, AsignMovilizacion = Movilizacion, AsignColacion = Colacion }; ContratoEmpleado ObjContrato = new ContratoEmpleado { Cargo = CargoACrear }; PrevisionEmpleado ObjPrevision = new PrevisionEmpleado(); if (AFPempleado != null) { ObjPrevision.AFP = AFPempleado; } Tbempleados EmpleadoAInsertar = new Tbempleados { Rut = Rut, Nombre = Nombre, Apellido = Apellido, FechaNacimiento = FechaNacimiento, Nacionalidad = Nacionalidad, Telefono = Telefono, SueldoEmp = ObjSueldo, ContratoEmp = ObjContrato, PrevisionEmp = ObjPrevision, EmpresaEmpleado = ObjEmpresa }; EmpleadoToEmpresa.Add(EmpleadoAInsertar); } db.FichaEmpresa.Add(ObjEmpresa); db.Tbempleados.AddRange(EmpleadoToEmpresa); Result = db.SaveChanges(); return(Result); }
private PreCadastro() { Contratantes = new List <Contratante>(); FichaCadastral = new FichaEmpresa(); }
public static bool InsertarEmpleado(FichaEmpleadoRequestModel NuevoEmp, remuneracionesContext db) { bool Result = false; using (var dbContextTransaction = db.Database.BeginTransaction()) { try { Tbempleados InsertEmpleado = new Tbempleados(); SueldoEmpleado InsertEmpleadoSueldo = new SueldoEmpleado(); ContratoEmpleado InsertEmpleadoContrato = new ContratoEmpleado(); PrevisionEmpleado InsertEmpleadoPrevi = new PrevisionEmpleado(); List <Tbempleados> LstEmpleados = new List <Tbempleados>(); FichaEmpresa ObjEmpresa = new FichaEmpresa(); ObjEmpresa.RazonSocial = "TestEmpresa"; ObjEmpresa.lstEmpleados = LstEmpleados; ObjEmpresa.Comuna = 1; ObjEmpresa.Direccion = "Barca 2560"; ObjEmpresa.Principal = true; ObjEmpresa.Rut = "13519830-7"; ObjEmpresa.TipoEmpresa = 1; ObjEmpresa.Giro = "Venta"; ObjEmpresa.RepresentanteLegal = "PedritoVega"; ObjEmpresa.RutRepresentanteLegal = "19507432-1"; ObjEmpresa.Vigente = true; ObjEmpresa.FormaPagoGratif = 1; ObjEmpresa.FormPagoMoviColacion = 1; ObjEmpresa.UsuarioEmpresaId = 1; InsertEmpleado.EstaDisponible = Convert.ToBoolean(NuevoEmp.EstaVigente); InsertEmpleado.Nombre = NuevoEmp.Nombre; InsertEmpleado.Apellido = NuevoEmp.Apellido; InsertEmpleado.Rut = NuevoEmp.Rut; InsertEmpleado.Nacionalidad = NuevoEmp.Nacionalidad; InsertEmpleado.Email = NuevoEmp.EmailPersonal; InsertEmpleado.Direccion = NuevoEmp.NumCasa + " " + NuevoEmp.Departamento + " " + NuevoEmp.Calle; InsertEmpleado.Sexo = Convert.ToInt32(NuevoEmp.Sexo); InsertEmpleado.Telefono = Convert.ToInt32(NuevoEmp.Telefono); InsertEmpleado.FechaNacimiento = Helpers.Utiles.ToDD_MM_AAAA_Multi(NuevoEmp.FechaNacimiento); InsertEmpleado.FechaCreacion = DateTime.Now; //Contrato InsertEmpleadoContrato.ContratoDesde = Helpers.Utiles.ToDD_MM_AAAA_Multi(NuevoEmp.ContratoDesde); InsertEmpleadoContrato.ContratoHasta = Helpers.Utiles.ToDD_MM_AAAA_Multi(NuevoEmp.ContratoHasta); CargosModel Cargo = new CargosModel(); if (NuevoEmp.Cargo != "Selecciona") { Cargo = db.CargosModel.Where(x => x.Id == Convert.ToInt32(NuevoEmp.Cargo)).FirstOrDefault(); } InsertEmpleadoContrato.Cargo = Cargo; //Sueldo InsertEmpleadoSueldo.AsignColacion = Convert.ToDecimal(NuevoEmp.AsignColacion); InsertEmpleadoSueldo.AsignMovilizacion = Convert.ToDecimal(NuevoEmp.AsignMovilizacion); InsertEmpleadoSueldo.SueldoBase = Convert.ToDecimal(NuevoEmp.SueldoBase); InsertEmpleadoSueldo.CuentaCorriente = Convert.ToInt32(NuevoEmp.NumCuenta); AfpModel AfpEmpleado = db.AfpModel.SingleOrDefault(x => x.Id == Convert.ToInt32(NuevoEmp.AFPId)); //Prevision //ver la posilidad de nulos en las relaciones var isapreObject = new IsapreModel(); InsertEmpleadoPrevi.AFPId = AfpEmpleado.Id; if (!string.IsNullOrWhiteSpace(NuevoEmp.IsapreId) && !string.IsNullOrWhiteSpace(NuevoEmp.IsapreTipoMonto)) { int TipoMontoPac = Convert.ToInt32(NuevoEmp.IsapreTipoMonto); TipoMontoPactado TipoMontoNuevoEmp = (TipoMontoPactado)TipoMontoPac; InsertEmpleadoPrevi.Tipo = TipoMontoNuevoEmp; InsertEmpleadoPrevi.IsapreId = Convert.ToInt32(NuevoEmp.IsapreId); InsertEmpleadoPrevi.MontoPactadoIsapre = Convert.ToDecimal(NuevoEmp.IsapreMonto); } InsertEmpleadoPrevi.Isapre = isapreObject; InsertEmpleado.ContratoEmp = InsertEmpleadoContrato; InsertEmpleado.SueldoEmp = InsertEmpleadoSueldo; InsertEmpleado.PrevisionEmp = InsertEmpleadoPrevi; //Registro de haberes y descuentos base. LstEmpleados.Add(InsertEmpleado); db.FichaEmpresa.Add(ObjEmpresa); db.Tbempleados.Add(InsertEmpleado); db.SaveChanges(); List <ColeccionHaberes> LsthaberesAregistrar = new List <ColeccionHaberes>() { new ColeccionHaberes() { Nombre = "Sueldo Base", Categoria_id = CategoriaHaberes.IMPONIBLE, ValorCalculo = InsertEmpleadoSueldo.SueldoBase, EmpresaId = ObjEmpresa.Id }, new ColeccionHaberes() { Nombre = "Movilizacion", Categoria_id = CategoriaHaberes.NOIMPONIBLE, ValorCalculo = InsertEmpleadoSueldo.AsignMovilizacion, EmpresaId = ObjEmpresa.Id }, new ColeccionHaberes() { Nombre = "Colacion", Categoria_id = CategoriaHaberes.NOIMPONIBLE, ValorCalculo = InsertEmpleadoSueldo.AsignColacion, EmpresaId = ObjEmpresa.Id } }; //Por Evaluar List <ColeccionDescuentos> LstDescuentosAregistrar = new List <ColeccionDescuentos>() { new ColeccionDescuentos() { Nombre = InsertEmpleadoPrevi.AFP.NombreAfp, ValorCalculo = AfpEmpleado.DependientesTasaAfp, EmpresaId = ObjEmpresa.Id } }; db.ColeccionHaberes.AddRange(LsthaberesAregistrar); db.ColeccionDescuentos.AddRange(LstDescuentosAregistrar); db.SaveChanges(); var LstHaberesYdescARegistrar = new List <HaberesYDescuentosEmpleado>(); foreach (ColeccionHaberes ItemHaber in LsthaberesAregistrar) { var HaberAResgistrar = new HaberesYDescuentosEmpleado() { EmpleadoId = InsertEmpleado.Id, EmpresaId = ObjEmpresa.Id, HaberOdescuentoId = ItemHaber.Id, TipoHoD = TipoHaberODescuento.HABER, Monto = ItemHaber.ValorCalculo }; LstHaberesYdescARegistrar.Add(HaberAResgistrar); } foreach (ColeccionDescuentos ItemDescuento in LstDescuentosAregistrar) { var DescuentoARegistrar = new HaberesYDescuentosEmpleado() { EmpleadoId = InsertEmpleado.Id, EmpresaId = ObjEmpresa.Id, HaberOdescuentoId = ItemDescuento.Id, TipoHoD = TipoHaberODescuento.DESCUENTO, Monto = Convert.ToDecimal(ItemDescuento.ValorCalculo) }; LstHaberesYdescARegistrar.Add(DescuentoARegistrar); } db.HaberesYDescuentosEmpleado.AddRange(LstHaberesYdescARegistrar); db.SaveChanges(); dbContextTransaction.Commit(); Result = true; } catch (Exception ex) { dbContextTransaction.Rollback(); } } return(Result); }