public static bool AsignarHoDEmp(RequestAsignarHoD Request, remuneracionesContext db) { bool Result = false; try { var LstHyD = new List <HaberesYDescuentosEmpleado>(); if (Request.IdsHaberesAsignados.Count() > 0 && Request.IdsHaberesAsignados.Any(x => x != "Selecciona")) { foreach (string IdHaber in Request.IdsHaberesAsignados) { var Haber = db.ColeccionHaberes.SingleOrDefault(x => x.Id == Convert.ToInt32(IdHaber)); if (Haber != null) { var ItemAsignacion = new HaberesYDescuentosEmpleado() { EmpresaId = 1, EmpleadoId = Convert.ToInt32(Request.EmpleadoId), HaberOdescuentoId = Haber.Id, TipoHoD = TipoHaberODescuento.HABER, Monto = Haber.ValorCalculo }; LstHyD.Add(ItemAsignacion); } } } if (Request.IdsDescuentosAsignados.Count() > 0 && Request.IdsDescuentosAsignados.Any(x => x != "Selecciona")) { foreach (string IdDescuento in Request.IdsDescuentosAsignados) { var Descuento = db.ColeccionDescuentos.SingleOrDefault(x => x.Id == Convert.ToInt32(IdDescuento)); if (Descuento != null) { var ItemAsignacion = new HaberesYDescuentosEmpleado() { EmpresaId = 1, EmpleadoId = Convert.ToInt32(Request.EmpleadoId), HaberOdescuentoId = Descuento.Id, TipoHoD = TipoHaberODescuento.DESCUENTO, Monto = Descuento.ValorCalculo }; LstHyD.Add(ItemAsignacion); } } } db.HaberesYDescuentosEmpleado.AddRange(LstHyD); db.SaveChanges(); Result = true; } catch (Exception) { Result = false; } return(Result); }
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); }