public static string CrearCredito(int pSolicitudCreditoId, int pProductoId, string pTipoCuota, decimal pMontoInicial, decimal pMontoGastosAdm, string pIndGastosAdm, decimal pMontoCredito, string pModalidad, int pNumerocuotas, decimal pInteresMensual, DateTime pFechaPrimerPago, string pObservacion) { string retorno; using (var scope = new TransactionScope()) { try { using (var db = new VENDIXEntities()) { retorno = db.usp_Credito_Ins(pSolicitudCreditoId, pProductoId, pTipoCuota, pMontoInicial, pMontoCredito, pMontoGastosAdm, pIndGastosAdm, pModalidad, pNumerocuotas, pInteresMensual, pFechaPrimerPago, pObservacion, VendixGlobal.GetUsuarioId()).ToList()[0]; } scope.Complete(); } catch (Exception ex) { scope.Dispose(); retorno = ex.InnerException.Message; } } return(retorno); }
public static bool CrearSolicitudCredito(int pPersonaId) { var oCredito = new Credito { OficinaId = VendixGlobal.GetOficinaId(), PersonaId = pPersonaId, TipoCuota = "F", Descripcion = "", MontoProducto = 0, MontoInicial = 0, MontoCredito = 500, ProductoId = 1, MontoGastosAdm = 0, TipoGastoAdm = "CAP", Estado = "CRE", FormaPago = "D", NumeroCuotas = 26, Interes = 8, Observacion = string.Empty, FechaPrimerPago = VendixGlobal.GetFecha(), FechaVencimiento = VendixGlobal.GetFecha(), FechaReg = VendixGlobal.GetFecha(), UsuarioRegId = VendixGlobal.GetUsuarioId(), Calificacion = "A" }; oCredito.MontoGastosAdm = GastosAdmBL.CalcularGastosAdm(oCredito.MontoCredito, true); CreditoBL.Crear(oCredito); return(true); }
public static bool EnviarOrdenVentaCredito(int pOrdenVentaId) { var orden = Obtener(pOrdenVentaId); var glosa = string.Empty; decimal inicial = orden.TotalNeto * (decimal)0.15; decimal montocredito = orden.TotalNeto - inicial; int productoId = 1; var gastosadm = GastosAdmBL.CalcularGastosAdm(montocredito); var lstdes = OrdenVentaDetBL.Listar(x => x.Estado && x.OrdenVentaId == orden.OrdenVentaId).Select(x => x.Descripcion) .ToList(); for (int i = 0; i < lstdes.Count; i++) { glosa += lstdes[i]; if (i != lstdes.Count - 1) { glosa += ", " + Environment.NewLine; } } var oCredito = new Credito { OficinaId = VendixGlobal.GetOficinaId(), PersonaId = orden.PersonaId, Descripcion = glosa, MontoProducto = orden.TotalNeto, MontoInicial = inicial, MontoCredito = montocredito, ProductoId = productoId, MontoGastosAdm = gastosadm, Estado = "CRE", FormaPago = "D", NumeroCuotas = 26, InteresMensual = 7, FechaPrimerPago = DateTime.Now, FechaVencimiento = DateTime.Now, FechaReg = DateTime.Now, UsuarioRegId = VendixGlobal.GetUsuarioId(), OrdenVentaId = pOrdenVentaId }; using (var scope = new TransactionScope()) { try { CreditoBL.Crear(oCredito); orden.Estado = "ENV"; orden.TipoVenta = "CRE"; Actualizar(orden); scope.Complete(); } catch (Exception ex) { scope.Dispose(); throw new Exception(ex.InnerException.Message); } } return(true); }
public static int CerrarCajaDiario() { var oCajadiario = Obtener(VendixGlobal.GetCajaDiarioId()); oCajadiario.IndCierre = true; oCajadiario.FechaFinOperacion = DateTime.Now; var oCaja = CajaBL.Obtener(oCajadiario.CajaId); oCaja.IndAbierto = false; oCaja.FechaMod = DateTime.Now; oCaja.UsuarioModId = VendixGlobal.GetUsuarioId(); using (var scope = new TransactionScope()) { try { Actualizar(oCajadiario); CajaBL.Actualizar(oCaja); scope.Complete(); return(oCajadiario.CajaDiarioId); } catch (Exception ex) { scope.Dispose(); return(0); } } }
public static bool CrearSolicitudCredito(int pPersonaId) { var oCredito = new Credito { OficinaId = VendixGlobal.GetOficinaId(), PersonaId = pPersonaId, TipoCuota = "V", Descripcion = "", MontoProducto = 0, MontoInicial = 0, MontoCredito = 0, ProductoId = 1, MontoGastosAdm = 0, Estado = "CRE", FormaPago = "M", NumeroCuotas = 12, InteresMensual = 19, FechaPrimerPago = DateTime.Now, FechaVencimiento = DateTime.Now, FechaReg = DateTime.Now, UsuarioRegId = VendixGlobal.GetUsuarioId() }; CreditoBL.Crear(oCredito); return true; }
public static List <CxcJgrid> LstCuentasxCobrarJGrid(GridDataRequest request, ref int pTotalItems) { var personaid = int.Parse(request.DataFilters()["PersonaId"]); var usuarioid = VendixGlobal.GetUsuarioId(); IQueryable <CuentaxCobrar> qrycxc; using (var db = new VENDIXEntities()) { if (personaid == 0) { qrycxc = db.CuentaxCobrar.Where(x => x.Credito.UsuarioRegId == usuarioid && x.Estado == "PEN"); } else { qrycxc = db.CuentaxCobrar.Where(x => x.Credito.PersonaId == personaid && x.Credito.UsuarioRegId == usuarioid && x.Estado == "PEN"); } IQueryable <CxcJgrid> query = qrycxc .Select(x => new CxcJgrid { OrdenVentaId = x.Credito.OrdenVentaId == null ? 0 : x.Credito.OrdenVentaId.Value, CuentaxCobrarId = x.CuentaxCobrarId, Codigo = x.Credito.Persona.Codigo, Cliente = x.Credito.Persona.NombreCompleto, Operacion = x.Operacion, Origen = " CREDITO: " + SqlFunctions.StringConvert((decimal)x.CreditoId).Trim(),// + x.Credito.OrdenVentaId == null ? "" : ("ORDEN: " + SqlFunctions.StringConvert((decimal)x.Credito.OrdenVentaId).Trim()), Monto = x.Monto, Estado = x.Estado, FechaReg = x.Credito.FechaAprobacion.Value }) .Union(db.OrdenVenta.Where(x => x.PersonaId == personaid && x.TipoVenta == "CON" && x.Estado == "ENV") .Select(x => new CxcJgrid { OrdenVentaId = x.OrdenVentaId, CuentaxCobrarId = 0, Codigo = x.Persona.Codigo, Cliente = x.Persona.NombreCompleto, Operacion = "CON", Origen = "ORDEN: " + SqlFunctions.StringConvert((decimal)x.OrdenVentaId).Trim(), Monto = x.TotalNeto, Estado = "PEN", FechaReg = x.FechaReg })); pTotalItems = query.Count(); var lista = query.OrderBy(request.sidx + " " + request.sord) .Skip((request.page - 1) * request.rows).Take(request.rows).ToList(); for (var i = 0; i < lista.Count(); i++) { lista[i].Id = i; } return(lista); } }
public static int?PagarCuotas(int pCajaDiarioId, int pCreditoId, string pPlanPago, decimal pImporteRecibido) { using (var scope = new TransactionScope()) { try { int?retid; using (var db = new VENDIXEntities()) { retid = db.usp_PagarCuotas(pCajaDiarioId, pCreditoId, pPlanPago, pImporteRecibido, VendixGlobal.GetUsuarioId(), VendixGlobal.GetFecha()).ToList()[0]; } scope.Complete(); return(retid); //return 0; } catch (Exception) { scope.Dispose(); return(-1); } } //using (var scope = new TransactionScope()) //{ // try // { // int? retid; // using (var db = new VENDIXEntities()) // { // var retid1 = db.Database.SqlQuery<cal>("CREDITO.usp_PagarCuotas @CajaDiarioId, @CreditoId, @ListaPlanPagoId, @ImporteRecibido, @UsuarioId, @FechaPago", // new SqlParameter("@CajaDiarioId", pCajaDiarioId), // new SqlParameter("@CreditoId", pCreditoId), // new SqlParameter("@ListaPlanPagoId", pPlanPago), // new SqlParameter("@ImporteRecibido", pImporteRecibido), // new SqlParameter("@UsuarioId", VendixGlobal.GetUsuarioId()), // new SqlParameter("@FechaPago", VendixGlobal.GetFecha()) // ).ToList(); // } // scope.Complete(); // //return retid; // return 0; // } // catch (Exception ex) // { // scope.Dispose(); // return -1; // } //} }
public static bool TransferirCajaDiarioBoveda() { var idOficina = VendixGlobal.GetOficinaId(); using (var scope = new TransactionScope()) { try { var cajasDiarios = Listar(x => x.IndCierre && x.TransBoveda == false && x.Caja.OficinaId == idOficina, includeProperties: "Caja"); var oBoveda = BovedaBL.Obtener(x => x.OficinaId == idOficina && x.IndCierre == false); foreach (var item in cajasDiarios) { item.TransBoveda = true; Actualizar(item); var movBoveda = new BovedaMov { BovedaId = oBoveda.BovedaId, CodOperacion = "TRE", Glosa = "CIERRE " + item.Caja.Denominacion + " " + VendixGlobal.GetFecha().ToShortDateString(), Importe = item.SaldoFinal, IndEntrada = true, Estado = true, UsuarioRegId = VendixGlobal.GetUsuarioId(), FechaReg = VendixGlobal.GetFecha(), CajaDiarioId = item.CajaDiarioId, }; BovedaMovBL.Crear(movBoveda); } var oBovedaMov = BovedaMovBL.Listar(x => x.BovedaId == oBoveda.BovedaId && x.Estado); oBoveda.Entradas = oBovedaMov.Where(x => x.IndEntrada).Sum(x => x.Importe); oBoveda.Salidas = oBovedaMov.Where(x => x.IndEntrada == false).Sum(x => x.Importe); oBoveda.SaldoFinal = oBoveda.SaldoInicial + oBoveda.Entradas - oBoveda.Salidas; BovedaBL.Actualizar(oBoveda); using (var db = new VENDIXEntities()) { db.usp_CalificarCliente(idOficina); db.SaveChanges(); } scope.Complete(); return(true); } catch (Exception) { scope.Dispose(); throw; } } }
public static List <Clientejgrid> LstClienteJGrid(GridDataRequest request, ref int pTotalItems) { string filterExpression = string.Empty; var userid = VendixGlobal.GetUsuarioId(); if (request.DataFilters()["Buscar"] != string.Empty) { filterExpression = "Cliente.Contains( \"" + request.DataFilters()["Buscar"] + "\") || Documento.Contains( \"" + request.DataFilters()["Buscar"] + "\")"; } IQueryable <Clientejgrid> query; using (var db = new VENDIXEntities()) { if (request.DataFilters()["Buscar"] != string.Empty) { query = db.Cliente.Select(x => new Clientejgrid { PersonaId = x.PersonaId, Codigo = x.Persona.Codigo, Cliente = x.Persona.NombreCompleto, Documento = x.Persona.TipoDocumento + " " + x.Persona.NumeroDocumento, Celular = x.Persona.Celular1, Direccion = x.Persona.Direccion, Email = x.Persona.Direccion }); } else { query = db.Credito.Where(x => x.UsuarioRegId == userid).Select(x => new Clientejgrid { PersonaId = x.PersonaId, Codigo = x.Persona.Codigo, Cliente = x.Persona.NombreCompleto, Documento = x.Persona.TipoDocumento + " " + x.Persona.NumeroDocumento, Celular = x.Persona.Celular1, Direccion = x.Persona.Direccion, Email = x.Persona.EmailPersonal }).Distinct(); } if (!String.IsNullOrEmpty(filterExpression)) { query = query.Where(filterExpression); } pTotalItems = query.Count(); return(query.OrderBy(request.sidx + " " + request.sord) .Skip((request.page - 1) * request.rows).Take(request.rows).ToList()); } }
public static bool CrearCargo(int pCreditoId, int pTipoCargoId, decimal pMonto, string pDescripcion, bool pFinal) { var usuarioid = VendixGlobal.GetUsuarioId(); using (var scope = new TransactionScope()) { try { using (var db = new VENDIXEntities()) { int numcuota; if (pFinal) { numcuota = db.PlanPago.Where(x => x.CreditoId == pCreditoId && x.Estado == "PEN") .OrderByDescending(x => x.Numero).Take(1).First().Numero; } else { numcuota = db.PlanPago.Where(x => x.CreditoId == pCreditoId && x.Estado == "PEN") .OrderBy(x => x.Numero).Take(1).First().Numero; } Crear(db, new Cargo() { CreditoId = pCreditoId, NumCuota = numcuota, Descripcion = pDescripcion, TipoCargoT2 = pTipoCargoId, Importe = pMonto, UsuarioId = usuarioid, Fecha = DateTime.Now, Estado = "PEN" }); db.SaveChanges(); var montocargo = db.Cargo.Where(x => x.CreditoId == pCreditoId && x.NumCuota == numcuota && x.Estado == "PEN").Sum(x => x.Importe); var planpago = db.PlanPago.First(x => x.CreditoId == pCreditoId && x.Numero == numcuota); planpago.Cargo = montocargo; planpago.PagoCuota = planpago.Cuota + planpago.ImporteMora + planpago.InteresMora + planpago.Cargo - planpago.PagoLibre; db.SaveChanges(); } scope.Complete(); return(true); } catch (Exception) { scope.Dispose(); return(false); } } }
public static bool ReprogramarCredito(int pCreditoId) { using (var scope = new TransactionScope()) { try { using (var db = new VENDIXEntities()) { db.usp_ReprogramarCredito(pCreditoId, VendixGlobal.GetUsuarioId()); } scope.Complete(); return(true); } catch (Exception) { scope.Dispose(); throw; } } }
public static bool AnularMovimientoCaja(int pMovimientoCajaId, string pObservacion) { using (var scope = new TransactionScope()) { try { using (var db = new VENDIXEntities()) { db.usp_MovimientoCaja_Del(pMovimientoCajaId, pObservacion, VendixGlobal.GetUsuarioId()); } scope.Complete(); return(true); } catch (Exception) { scope.Dispose(); throw; } } }
public static bool AnularCredito(int pCreditoId, string pObservacion) { using (var scope = new TransactionScope()) { try { using (var db = new VENDIXEntities()) { db.usp_Credito_Del(pCreditoId, pObservacion, VendixGlobal.GetUsuarioId()); } scope.Complete(); return true; } catch (Exception) { scope.Dispose(); throw; } } }
public static string AgregarOrdenVentaDetalle(int pOrdenVentaId, string pNumeroSerie) { using (var scope = new TransactionScope()) { try { string rpta; using (var db = new VENDIXEntities()) { rpta = db.usp_OrdenVentaDet_Ins(pOrdenVentaId, pNumeroSerie, VendixGlobal.GetUsuarioId()).ToList()[0]; } scope.Complete(); return(rpta); } catch (Exception ex) { scope.Dispose(); return(ex.Message); } } }
public static int?RealizarPagarCuentaxCobrar(int pOrdenVentaId, int pCuentaxCobrarId) { using (var scope = new TransactionScope()) { try { int?retid; using (var db = new VENDIXEntities()) { retid = db.usp_PagarCuentaxCobrar(pOrdenVentaId, pCuentaxCobrarId, VendixGlobal.GetCajaDiarioId(), VendixGlobal.GetUsuarioId()).ToList()[0]; } scope.Complete(); return(retid); } catch (Exception) { scope.Dispose(); return(-1); } } }
public static int?PagarCuotasCancelacion(int pCajaDiarioId, int pCreditoId) { using (var scope = new TransactionScope()) { try { int?retid; using (var db = new VENDIXEntities()) { retid = db.usp_PagarCuotasCancelacion(pCajaDiarioId, pCreditoId, VendixGlobal.GetUsuarioId(), VendixGlobal.GetFecha()).ToList()[0]; } scope.Complete(); return(retid); } catch (Exception) { scope.Dispose(); return(-1); } } }
public static string EntradaSalida(int pPersonaId, int pTipoOperacionId, string pDescripcion, decimal pImporte) { if (string.IsNullOrEmpty(pDescripcion)) { return("Ingrese Descripción"); } var cajadiarioid = VendixGlobal.GetCajaDiarioId(); var tipooperacion = TipoOperacionBL.Obtener(pTipoOperacionId); if (!tipooperacion.IndEntrada) { if (pImporte > Obtener(cajadiarioid).SaldoFinal) { return("Saldo Insuficiente!"); } } using (var scope = new TransactionScope()) { try { using (var db = new VENDIXEntities()) { db.usp_EntradaSalidaCajaDiario(cajadiarioid, pPersonaId, pTipoOperacionId, pImporte, pDescripcion, VendixGlobal.GetUsuarioId()); } scope.Complete(); return(string.Empty); } catch (Exception ex) { scope.Dispose(); return(ex.Message); } } }
public static List <Credito> LstDesembolsoJGrid(GridDataRequest request, ref int pTotalItems) { var personaid = int.Parse(request.DataFilters()["PersonaId"]); var usuarioid = VendixGlobal.GetUsuarioId(); IQueryable <Credito> query; using (var db = new VENDIXEntities()) { if (personaid == 0) { query = db.Credito.Include("Persona").Where(x => x.UsuarioRegId == usuarioid && x.Estado == "APR"); } else { query = db.Credito.Include("Persona").Where(x => x.PersonaId == personaid && x.Estado == "APR"); } pTotalItems = query.Count(); var lista = query.OrderBy(request.sidx + " " + request.sord) .Skip((request.page - 1) * request.rows).Take(request.rows).ToList(); return(lista); } }
public static int CerrarCajaDiario() { var oCajadiario = Obtener(VendixGlobal.GetCajaDiarioId()); oCajadiario.IndCierre = true; oCajadiario.FechaFinOperacion = VendixGlobal.GetFecha(); var MontoCobrado = MovimientoCajaBL.Listar(x => x.CajaDiarioId == oCajadiario.CajaDiarioId && x.IndEntrada && x.Operacion == "CUO" && x.Estado) .Sum(x => x.ImportePago); oCajadiario.MontoCobrado = MontoCobrado; var oCaja = CajaBL.Obtener(oCajadiario.CajaId); oCaja.IndAbierto = false; oCaja.FechaMod = VendixGlobal.GetFecha(); oCaja.UsuarioModId = VendixGlobal.GetUsuarioId(); using (var scope = new TransactionScope()) { try { Actualizar(oCajadiario); CajaBL.Actualizar(oCaja); scope.Complete(); return(oCajadiario.CajaDiarioId); } catch (Exception) { scope.Dispose(); return(0); } } }
public static List <CreditoPendienteJGrid> LstCreditoPendienteJGrid(GridDataRequest request, ref int pTotalItems) { var usuarioid = VendixGlobal.GetUsuarioId(); IQueryable <CreditoPendienteJGrid> query; using (var db = new VENDIXEntities()) { query = db.Credito.Where(x => x.UsuarioRegId == usuarioid && x.Estado == "DES"). Select(x => new CreditoPendienteJGrid { CreditoId = x.CreditoId, Codigo = x.Persona.Codigo, Cliente = x.Persona.NombreCompleto, MontoCredito = x.MontoCredito, PersonaId = x.PersonaId }); pTotalItems = query.Count(); var lista = query.OrderBy(request.sidx + " " + request.sord) .Skip((request.page - 1) * request.rows).Take(request.rows).ToList(); return(lista); } }
public static string RealizarDesembolso(int pCreditoId) { var cajadiarioid = VendixGlobal.GetCajaDiarioId(); var usuarioid = VendixGlobal.GetUsuarioId(); int movimientoCajaId = 0; using (var scope = new TransactionScope()) { try { using (var db = new VENDIXEntities()) { var credito = db.Credito.Find(pCreditoId); credito.FechaDesembolso = VendixGlobal.GetFecha(); credito.Estado = "DES"; credito.UsuarioModId = usuarioid; credito.FechaMod = VendixGlobal.GetFecha(); CreditoBL.Actualizar(db, credito); var mov = new MovimientoCaja() { CajaDiarioId = cajadiarioid, Operacion = "DES", ImportePago = credito.MontoDesembolso, ImporteRecibido = credito.MontoDesembolso, MontoVuelto = 0, PersonaId = credito.PersonaId, Descripcion = "DESEMBOLSO CREDITO " + credito.CreditoId.ToString(), IndEntrada = false, Estado = true, UsuarioRegId = usuarioid, FechaReg = VendixGlobal.GetFecha(), OrdenVentaId = null, CreditoId = credito.CreditoId }; db.MovimientoCaja.Add(mov); db.SaveChanges(); movimientoCajaId = mov.MovimientoCajaId; var oCajaDiario = db.CajaDiario.Find(cajadiarioid); var qry = db.MovimientoCaja.Where(z => z.CajaDiarioId == oCajaDiario.CajaDiarioId && z.Estado).Select(x => new { x.ImportePago, x.IndEntrada }); if (qry.Count(x => x.IndEntrada) > 0) { oCajaDiario.Entradas = qry.Where(z => z.IndEntrada).Sum(x => x.ImportePago); } if (qry.Count(x => x.IndEntrada == false) > 0) { oCajaDiario.Salidas = qry.Where(z => z.IndEntrada == false).Sum(x => x.ImportePago); } oCajaDiario.SaldoFinal = oCajaDiario.SaldoInicial + oCajaDiario.Entradas - oCajaDiario.Salidas; db.SaveChanges(); } scope.Complete(); return(movimientoCajaId.ToString()); } catch (Exception ex) { scope.Dispose(); return(ex.Message); } } }
public static int RealizarPedido(int pClienteId, List <Pedido> pPedidos) { using (var scope = new TransactionScope()) { try { var cabecera = new OrdenVenta { OficinaId = VendixGlobal.GetOficinaId(), Subtotal = 0, TotalNeto = 0, TotalImpuesto = 0, TotalDescuento = 0, Estado = "ENV", UsuarioRegId = VendixGlobal.GetUsuarioId(), FechaReg = VendixGlobal.GetFecha(), PersonaId = pClienteId, TipoVenta = "CON" }; Guardar(cabecera); var detalle = new List <OrdenVentaDet>(); OrdenVentaDet item; decimal tNeto = 0; decimal tDescuento = 0; foreach (var i in pPedidos) { item = new OrdenVentaDet(); var art = ArticuloBL.Obtener(x => x.ArticuloId == i.ArticuloId, "ListaPrecio"); var precio = art.ListaPrecio.First().Monto.Value; item.OrdenVentaId = cabecera.OrdenVentaId; item.ArticuloId = art.ArticuloId; item.Cantidad = i.Cantidad; item.Descripcion = art.Denominacion; item.ValorVenta = precio; item.Descuento = i.Descuento; item.Subtotal = i.Cantidad * (precio - i.Descuento); item.Estado = true; var lstSerie = SerieArticuloBL .Listar(x => x.ArticuloId == i.ArticuloId && x.EstadoId == Constante.SerieArticulo.EN_ALMACEN, x => x.OrderBy(y => y.SerieArticuloId)) .Take(i.Cantidad); foreach (var l in lstSerie) { item.OrdenVentaDetSerie.Add(new OrdenVentaDetSerie { SerieArticuloId = l.SerieArticuloId }); //SerieArticuloBL.ActualizarParcial( // new SerieArticulo { SerieArticuloId = l.SerieArticuloId, EstadoId = Constante.SerieArticulo.PREVENTA }, // x => x.EstadoId); } detalle.Add(item); tNeto += item.Subtotal; tDescuento += item.Descuento; } OrdenVentaDetBL.Guardar(detalle); cabecera.TotalNeto = tNeto; cabecera.TotalDescuento = tDescuento; cabecera.Subtotal = Math.Round(tNeto / (1 + Constante.IGV), 2); cabecera.TotalImpuesto = Math.Round(tNeto - cabecera.Subtotal, 2); ActualizarParcial(cabecera, x => x.TotalNeto, x => x.TotalDescuento, x => x.Subtotal, x => x.TotalImpuesto); int?retid; using (var db = new VENDIXEntities()) { retid = db.usp_PagarCuentaxCobrar(cabecera.OrdenVentaId, 0, VendixGlobal.GetCajaDiarioId(), VendixGlobal.GetUsuarioId()).ToList()[0]; } scope.Complete(); return(cabecera.OrdenVentaId); } catch (Exception ex) { scope.Dispose(); throw new Exception(ex.InnerException.Message); } } }
public static string AsignarUsuarioCaja(int pCajaId, int pUsuarioAsignadoId, decimal pSaldoInicial) { var idOficina = VendixGlobal.GetOficinaId(); var cajaDiario = new CajaDiario { CajaId = pCajaId, UsuarioAsignadoId = pUsuarioAsignadoId, SaldoInicial = pSaldoInicial, Entradas = 0, Salidas = 0, SaldoFinal = pSaldoInicial, FechaIniOperacion = VendixGlobal.GetFecha(), IndCierre = false, TransBoveda = false, }; var oBoveda = BovedaBL.Obtener(x => x.OficinaId == idOficina && x.IndCierre == false); if (cajaDiario.SaldoInicial > oBoveda.SaldoFinal) { return("Saldo Insuficiente de la boveda."); } using (var scope = new TransactionScope()) { try { Crear(cajaDiario); var oCaja = CajaBL.Obtener(cajaDiario.CajaId); oCaja.IndAbierto = true; CajaBL.Actualizar(oCaja); //ActualizarMontoPorCobrar(pUsuarioAsignadoId); if (pSaldoInicial > 0) { BovedaMovBL.Crear(new BovedaMov { BovedaId = oBoveda.BovedaId, CodOperacion = "TRS", Glosa = "INICIAL " + oCaja.Denominacion + " " + VendixGlobal.GetFecha().ToShortDateString(), Importe = pSaldoInicial, IndEntrada = false, Estado = true, UsuarioRegId = VendixGlobal.GetUsuarioId(), FechaReg = VendixGlobal.GetFecha(), CajaDiarioId = cajaDiario.CajaDiarioId, }); var oBovedaMov = BovedaMovBL.Listar(x => x.BovedaId == oBoveda.BovedaId && x.Estado); oBoveda.Entradas = oBovedaMov.Where(x => x.IndEntrada).Sum(x => x.Importe); oBoveda.Salidas = oBovedaMov.Where(x => x.IndEntrada == false).Sum(x => x.Importe); oBoveda.SaldoFinal = oBoveda.SaldoInicial + oBoveda.Entradas - oBoveda.Salidas; BovedaBL.Actualizar(oBoveda); } scope.Complete(); return(string.Empty); } catch (Exception ex) { scope.Dispose(); throw; } } }
public static bool TransferirBovedaCaja(decimal pImporte, string pDescripcion, int pCajaId) { var pUsuarioRegId = VendixGlobal.GetUsuarioId(); var oficinaId = VendixGlobal.GetOficinaId(); using (var scope = new TransactionScope()) { try { using (var db = new VENDIXEntities()) { var bovedaId = db.Boveda.First(x => x.OficinaId == oficinaId && x.IndCierre == false).BovedaId; var oCajaDiario = db.CajaDiario.First(x => x.CajaId == pCajaId && x.IndCierre == false); var personaId = db.Usuario.First(x => x.UsuarioId == pUsuarioRegId).PersonaId; db.BovedaMov.Add(new BovedaMov { BovedaId = bovedaId, CodOperacion = "TRS", Glosa = "TRANS A CAJA: " + pDescripcion.ToUpper(), Importe = pImporte, IndEntrada = false, Estado = true, CajaDiarioId = oCajaDiario.CajaDiarioId, UsuarioRegId = pUsuarioRegId, FechaReg = VendixGlobal.GetFecha() }); db.MovimientoCaja.Add(new MovimientoCaja { CajaDiarioId = oCajaDiario.CajaDiarioId, Operacion = "TRE", ImportePago = pImporte, ImporteRecibido = pImporte, MontoVuelto = 0, Descripcion = "TRANS DE BOVEDA: " + pDescripcion.ToUpper(), IndEntrada = true, Estado = true, PersonaId = personaId, UsuarioRegId = pUsuarioRegId, FechaReg = VendixGlobal.GetFecha() }); db.SaveChanges(); var qry = db.MovimientoCaja.Where(z => z.CajaDiarioId == oCajaDiario.CajaDiarioId && z.Estado).Select(x => new { x.ImportePago, x.IndEntrada }); if (qry.Count(x => x.IndEntrada) > 0) { oCajaDiario.Entradas = qry.Where(z => z.IndEntrada).Sum(x => x.ImportePago); } if (qry.Count(x => x.IndEntrada == false) > 0) { oCajaDiario.Salidas = qry.Where(z => z.IndEntrada == false).Sum(x => x.ImportePago); } oCajaDiario.SaldoFinal = oCajaDiario.SaldoInicial + oCajaDiario.Entradas - oCajaDiario.Salidas; db.usp_ActualizarSaldosBoveda(bovedaId); db.SaveChanges(); } scope.Complete(); return(true); } catch (Exception) { scope.Dispose(); return(false); } } }