Пример #1
0
        public TblOrdenDeCompra InsertOrden(TblOrdenDeCompra orden)
        {
            decimal resta = 0;

            UXiModel.CuentaUsuario _CtaUsr = new UXiModel.CuentaUsuario();
            using (uxisolutionbdEntities context = new uxisolutionbdEntities())
            {
                var query = context.TblOrdenDeCompra.Add(orden);


                _CtaUsr = context.CuentaUsuario.First(i => i.IdUsuario == orden.IdUsuario);
                resta   = (decimal)_CtaUsr.SaldoAFavor - orden.Total.Value;


                _CtaUsr.SaldoAFavor = resta;
                context.SaveChanges();

                var saldo = context.HistorialSaldos.Add(new HistorialSaldos()
                {
                    Fecha            = DateTime.Now,
                    IdUsuario        = orden.IdUsuario,
                    UUM              = orden.IdUsuario,
                    Monto_Salida     = (decimal)orden.Total,
                    IDTipoMovimiento = 4
                });

                context.SaveChanges();
            }
            return(orden);
        }
        //// GET: api/UsuariosAdm/5
        //public string Get(int id)
        //{
        //    return "value";
        //}

        // POST: api/UsuariosAdm
        public UXiModel.UXI_Usuarios Post(USP_GetUsuarioCuenta_EE Obj_nuevoUsr)
        {
            //buscar que el id usuario exista en cuenta contable
            UXiModel.CuentaUsuario cuenta_resultado = new UXiModel.CuentaUsuario();
            UXiModel.UXI_Usuarios  usuarios_cuenta  = new UXI_Usuarios();

            using (uxisolutionbdEntities context = new uxisolutionbdEntities())
            {
                var query = from i in context.CuentaUsuario
                            where i.IdUsuario == Obj_nuevoUsr.IdUsuario
                            select i;

                if (!query.Any())
                {
                    cuenta_resultado.IdUsuario   = Obj_nuevoUsr.IdUsuario;
                    cuenta_resultado.SaldoAFavor = Obj_nuevoUsr.saldoafavor;
                    cuenta_resultado.UUM         = 0;
                    cuenta_resultado.FUM         = DateTime.Now.Date;
                    cuenta_resultado.Activo      = true;

                    cuenta_resultado = context.CuentaUsuario.Add(cuenta_resultado);
                    //salvar el saldo a favor

                    var saldo = context.HistorialSaldos.Add(new HistorialSaldos()
                    {
                        Fecha            = DateTime.Now,
                        IdUsuario        = Obj_nuevoUsr.IdUsuario,
                        UUM              = Obj_nuevoUsr.IdUsuario,
                        Monto_Entrada    = (decimal)Obj_nuevoUsr.saldoafavor,
                        IDTipoMovimiento = 2
                    });
                }


                else
                {
                    cuenta_resultado             = context.CuentaUsuario.First(i => i.IdUsuario == Obj_nuevoUsr.IdUsuario);
                    cuenta_resultado.SaldoAFavor = cuenta_resultado.SaldoAFavor + Obj_nuevoUsr.saldoafavor;


                    var saldo = context.HistorialSaldos.Add(new HistorialSaldos()
                    {
                        Fecha            = DateTime.Now,
                        IdUsuario        = Obj_nuevoUsr.IdUsuario,
                        UUM              = Obj_nuevoUsr.IdUsuario,
                        Monto_Entrada    = (decimal)Obj_nuevoUsr.saldoafavor,
                        IDTipoMovimiento = 2
                    });
                }
                context.SaveChanges();
            }

            // actualizar la tabla de usuarios llenar la entidad

            using (uxisolutionbdEntities context = new uxisolutionbdEntities())
            {
                usuarios_cuenta             = context.UXI_Usuarios.First(i => i.IdUsuario == Obj_nuevoUsr.IdUsuario);
                usuarios_cuenta.TipoCliente = Obj_nuevoUsr.TipoCliente;
                usuarios_cuenta.VerTarifas  = Obj_nuevoUsr.VerTarifas;
                context.SaveChanges();
            }

            return(usuarios_cuenta);
        }