private void B_Guardar_Click(object sender, EventArgs e)
        {
               Nomina n = new Nomina();
            n.Dollar = Convert.ToDecimal(T_Dollar.Text);
            n.Usuario1 = Convert.ToInt32(T_Usuario.Text);
            n.Estatus1 = CBX_Estatus.Text;
            n.Fecha1 = DateTime.Today;
            ProNomina.GuardarNomina(n);
            try
            {

                if( ProNomina.GuardarNomina(n)>0 )
                    MessageBox.Show("la nomina se ha registrado correctamente");

            }
            catch
            {
                
            }

            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                DetalleNomina dn = new DetalleNomina();

                dn.Cedula = row.Cells["Cedula"].Value.ToString();
                dn.IdNomina = Convert.ToInt32(t_IdNomina.Text);
                dn.AFP = Convert.ToDecimal(row.Cells["AFP"].Value.ToString());
                dn.Seg_Med = Convert.ToDecimal(row.Cells["Seguro social"].Value.ToString());
                dn.Sueldo_neto = Convert.ToDecimal(row.Cells["Sueldo neto"].Value.ToString());
                dn.ISR = Convert.ToDecimal(row.Cells["Impuesto sobre la renta"].Value.ToString());





                if (ProNomina.GuardarDetalleNomina(dn) > 0)
                    MessageBox.Show("la nomina se ha registrado correctamente");

            }

        }
        public static int GuardarDetalleNomina(DetalleNomina nomina)
        {
            // @Id_Nomina,
            //@Id_Empleado,
            //@Sueldo_neto,
            //@AFP,
            //@Seg_Med,          @ISR,
            //@Otros
            SqlParameter[] dbparametro = new SqlParameter[]
            {
                //Conexiones.MakeParam("@IdNomina",SqlDbType.Int,0,nomina.IdNomina),

                Conexiones.MakeParam("@Id_Nomina", SqlDbType.Int, 0, nomina.IdNomina),
                //  Conexiones.MakeParam("@Id_Empleado",SqlDbType.Int,0,nomina.Id_Empleado),

                Conexiones.MakeParam("@Sueldo_neto", SqlDbType.Decimal, 0, nomina.Sueldo_neto),
                Conexiones.MakeParam("@AFP", SqlDbType.Decimal, 0, nomina.AFP),
                Conexiones.MakeParam("@Seg_Med", SqlDbType.Decimal, 0, nomina.Seg_Med),
                Conexiones.MakeParam("@ISR", SqlDbType.Decimal, 0, nomina.ISR),

                Conexiones.MakeParam("@Otros", SqlDbType.Decimal, 0, nomina.Otros), Conexiones.MakeParam("@Cedula", SqlDbType.VarChar, 0, nomina.Cedula)
            };
            return(Convert.ToInt32(Conexiones.ExecuteScalar("_Nuevo_Detalle_Nomina_", dbparametro)));
        }
Exemple #3
0
        public ActionResult CreateDetalle(DetalleNomina detalleNomina, OtroIngresoEgreso[] otroIngreso)
        {
            try
            {
                int  IdDetalle = 0;
                bool isUpdate  = false;

                using (var dbContext = new ConfortexEntities())
                {
                    if (detalleNomina.IdDetalleNomina == 0)
                    {
                        IdDetalle = db.DetalleNomina.Max(w => w.IdDetalleNomina) + 1;
                        dbContext.sp_GestionarDetalleNomina(IdDetalle, detalleNomina.IdNomina, detalleNomina.IdEmpleado, detalleNomina.Ajuste, detalleNomina.Transporte, detalleNomina.HorasExtra, detalleNomina.Ausencia, detalleNomina.MinutosTarde, detalleNomina.Prestamo, detalleNomina.INSS, clsReferencias.INSERT);
                    }
                    else
                    {
                        IdDetalle = detalleNomina.IdDetalleNomina;
                        dbContext.sp_GestionarDetalleNomina(detalleNomina.IdDetalleNomina, detalleNomina.IdNomina, detalleNomina.IdEmpleado, detalleNomina.Ajuste, detalleNomina.Transporte, detalleNomina.HorasExtra, detalleNomina.Ausencia, detalleNomina.MinutosTarde, detalleNomina.Prestamo, detalleNomina.INSS, clsReferencias.UPDATE);
                        isUpdate = true;
                    }
                }
                if (isUpdate)
                {
                    List <OtroIngresoEgreso> otros = db.OtroIngresoEgreso.Where(w => w.IdDetalleNomina == IdDetalle).ToList();
                    OtroIngresoEgreso        oie   = null;
                    if (otroIngreso != null)
                    {
                        for (int i = 0; i < otroIngreso.Length; i++)
                        {
                            if (otroIngreso[i].IdOtroIngresoEgreso == 0)
                            {
                                otroIngreso[i].IdDetalleNomina = IdDetalle;
                                otroIngreso[i].FechaCreacion   = System.DateTime.Now;
                                db.OtroIngresoEgreso.Add(otroIngreso[i]);
                            }
                            else
                            {
                                oie          = db.OtroIngresoEgreso.Find(otroIngreso[i].IdOtroIngresoEgreso);
                                oie.Concepto = otroIngreso[i].Concepto;
                                oie.Monto    = otroIngreso[i].Monto;

                                db.Entry(oie).State = EntityState.Modified;

                                otros = otros.Where(w => w.IdOtroIngresoEgreso != oie.IdOtroIngresoEgreso).ToList();
                            }
                        }
                        db.SaveChanges();
                    }

                    foreach (OtroIngresoEgreso o in otros)
                    {
                        oie                 = db.OtroIngresoEgreso.Find(o.IdOtroIngresoEgreso);
                        oie.regAnulado      = true;
                        db.Entry(oie).State = EntityState.Modified;
                    }
                    db.SaveChanges();
                }
                else
                {
                    if (otroIngreso != null)
                    {
                        for (int i = 0; i < otroIngreso.Length; i++)
                        {
                            otroIngreso[i].IdDetalleNomina = IdDetalle;
                            otroIngreso[i].FechaCreacion   = System.DateTime.Now;
                            db.OtroIngresoEgreso.Add(otroIngreso[i]);
                        }
                    }
                    db.SaveChanges();
                }

                return(Json(new { Message = clsReferencias.Exito }));
            }
            catch (Exception ex)
            {
                return(Json(new { Message = new clsException(ex).Message() }));
            }
        }
        public ActionResult <GenericApiResponse <object> > GuardarNomina(int tipo, [FromBody] DateTime date)
        {
            if (date == null)
            {
                return(this.HandleBadRequest("Fecha invalida", ""));
            }
            var nominas = Nomina(date, tipo);

            var culture = new CultureInfo("es-GT");
            var mes     = date.ToString("MMMM", culture);

            var nomina = new Nomina {
                Fecha = date, Mes = char.ToUpper(mes[0]) + mes.Substring(1)
            };

            nomina.DetallesNomina = new Collection <DetalleNomina>();
            switch (tipo)
            {
            case 0:
                nomina.Descripcion = "Mensual";
                break;

            case 1:
                nomina.Descripcion = "Bono 14";
                break;

            case 2:
                nomina.Descripcion = "Aguinaldo";
                break;
            }
            int i = 0;

            foreach (var n in nominas)
            {
                i++;
                var detalle = new DetalleNomina();
                detalle.Id                   = i;
                detalle.Nomina               = nomina;
                detalle.SueldoBruto          = n.SueldoBruto;
                detalle.SueldoLiquido        = n.SueldoNeto;
                detalle.SueldoExtraordinario = n.HorasExtras;
                detalle.Id_Empleado          = n.IdEmpleado;
                detalle.Detalles_Descuento   = new Collection <Detalle_Descuento>();

                int j = 0;
                foreach (var d in n.Descuentos)
                {
                    j++;
                    var descuento = new Detalle_Descuento();
                    descuento.Id            = j;
                    descuento.DetalleNomina = detalle;
                    descuento.Id_Descuento  = d.Id;
                    descuento.Monto         = d.Valor;
                    detalle.Detalles_Descuento.Add(descuento);
                }
                nomina.DetallesNomina.Add(detalle);
            }
            contexto.Nomina.Add(nomina);
            contexto.SaveChanges();

            return(this.HandleOKNoData());
        }