Ejemplo n.º 1
0
        private void ProcesarPagoTarjeta(VentaDataBase ventaData, VentaPago pago, CajaMovimiento cajaMovimiento)
        {
            var pagoTarjeta = pago as VentaPagoTarjeta;

            if (cajaMovimiento.Tarjeta == null)
            {
                cajaMovimiento.Tarjeta = 0;
            }

            cajaMovimiento.Tarjeta += pago.Importe;
            //GUARDAR TARJETA MOVIMIENTO
            TarjetasMovimiento tarjetasMovimiento = new TarjetasMovimiento();

            tarjetasMovimiento.CajaMovimientoId = cajaMovimiento.Id;
            tarjetasMovimiento.TarjetaId        = pagoTarjeta.TarjetaId ?? 0;
            tarjetasMovimiento.LoteCupon        = pagoTarjeta.CuponNumero;
            tarjetasMovimiento.Fecha            = _clock.Now;
            tarjetasMovimiento.Importe          = (float)pago.Importe;
            tarjetasMovimiento.Estado           = 1; // No se
            tarjetasMovimiento.FechaAlta        = _clock.Now;
            tarjetasMovimiento.SucursalAltaId   = ventaData.SucursalId;
            tarjetasMovimiento.OperadorAltaId   = ventaData.OperadorId;

            Uow.TarjetasMovimientos.Agregar(tarjetasMovimiento);
        }
Ejemplo n.º 2
0
        private void ProcesarPagoCheque(VentaDataBase ventaData, VentaPago pago, CajaMovimiento cajaMovimiento)
        {
            var pagoCheque = pago as VentaPagoCheque;

            if (cajaMovimiento.Cheque == null)
            {
                cajaMovimiento.Cheque = 0;
            }

            cajaMovimiento.Cheque += pago.Importe;

            ChequesTercero chequesTercero = new ChequesTercero();

            chequesTercero.Id = Guid.NewGuid();
            chequesTercero.CajaMovimientoId = cajaMovimiento.Id;
            chequesTercero.BancoId          = pagoCheque.BancoId ?? 0;
            chequesTercero.NroCheque        = pagoCheque.Numero;
            chequesTercero.Fecha            = _clock.Now;
            chequesTercero.FechaCobro       = _clock.Now;
            chequesTercero.Importe          = (float)pago.Importe;
            chequesTercero.FechaAlta        = _clock.Now;
            chequesTercero.EstadoChequeId   = 0;
            chequesTercero.SucursalAltaId   = ventaData.SucursalId;
            chequesTercero.OperadorAltaId   = ventaData.OperadorId;

            Uow.ChequesTerceros.Agregar(chequesTercero);
        }
Ejemplo n.º 3
0
        private void ActualizarCaja()
        {
            //ActualizarCaja y CajaMovimiento
            Caja caja = this.Context.CajaActual;

            if (caja.Egresos == null)
            {
                caja.Egresos = 0;
            }
            caja.Egresos               += (float?)Total;
            caja.Saldo                 -= (float?)Total;
            caja.FechaModificacion      = _clock.Now;
            caja.SucursalModificacionId = Context.SucursalActual.Id;   //Sucursal del operador
            caja.OperadorModificacionId = (Context.OperadorActual.Id); //Id el operador

            Uow.Cajas.Modificar(caja);

            CajaMovimiento cajaMovimiento = new CajaMovimiento();

            cajaMovimiento.Id     = Guid.NewGuid();
            cajaMovimiento.CajaId = caja.Id;
            cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.NotaCredito;
            cajaMovimiento.TipoComprobante      = TipoComprobanteEnum.NotaCrédito;
            cajaMovimiento.ComprobanteId        = _venta.Id;
            cajaMovimiento.Importe        = Total;
            cajaMovimiento.ImpFac         = Total;
            cajaMovimiento.Efectivo       = Total;
            cajaMovimiento.FechaAlta      = _clock.Now;
            cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id;
            cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id;

            Uow.CajaMovimientos.Agregar(cajaMovimiento);
        }
Ejemplo n.º 4
0
        private CajaMovimiento CrearCajaMovimiento(VentaDataBase ventaData, Caja caja, Venta venta)
        {
            CajaMovimiento cajaMovimiento = new CajaMovimiento();

            cajaMovimiento.Id     = Guid.NewGuid();
            cajaMovimiento.CajaId = caja.Id;
            cajaMovimiento.TipoMovimientoCajaId = ventaData.TipoCajaMovimientoSeleccionado;
            cajaMovimiento.TipoComprobante      = ventaData.TipoComprobanteSeleccionado;
            cajaMovimiento.ComprobanteId        = venta.Id;
            cajaMovimiento.Senia = ventaData.Senas + ventaData.CreditosDevolucion;
            if (ventaData.CondicionVentaSeleccionada == CondicionVentaEnum.CuentaCorriente)
            {
                cajaMovimiento.Importe = ventaData.Anticipo;
            }
            else
            {
                cajaMovimiento.Importe = ventaData.TotalPagar;
            }

            cajaMovimiento.ImpFac = ventaData.SubTotal;

            //if (ventaData.CondicionVentaSeleccionada == CondicionVentaEnum.CuentaCorriente)
            //    cajaMovimiento.ImpFac = ventaData.SubTotal;
            //else
            //    cajaMovimiento.ImpFac = ventaData.TotalPagar;


            cajaMovimiento.PcAlta         = ventaData.PcAlta;
            cajaMovimiento.SucursalAltaId = ventaData.SucursalId;
            cajaMovimiento.OperadorAltaId = ventaData.OperadorId;
            cajaMovimiento.FechaAlta      = _clock.Now;

            return(cajaMovimiento);
        }
Ejemplo n.º 5
0
        private void ProcesarPagoDeposito(VentaDataBase ventaData, VentaPago pago, CajaMovimiento cajaMovimiento, Venta venta, Caja caja)
        {
            var pagoDeposito = pago as VentaPagoDeposito;

            if (cajaMovimiento.Deposito == null)
            {
                cajaMovimiento.Deposito = 0;
            }

            //Guardar Cuentas Movimientos
            cajaMovimiento.Deposito += pago.Importe;

            CuentasMovimiento cuentasMovimiento = new CuentasMovimiento();

            cuentasMovimiento.CuentaId                 = pagoDeposito.CuentaId ?? 0;
            cuentasMovimiento.TipoMovimientoId         = 2; //Deposito
            cuentasMovimiento.FechaMovimiento          = pagoDeposito.Fecha;
            cuentasMovimiento.EstadoMovimientoCuentaId = 0;
            cuentasMovimiento.TipoComprobanteId        = ventaData.TipoComprobanteSeleccionado;
            cuentasMovimiento.ComprobanteId            = venta.Id;
            cuentasMovimiento.MonedaId                 = 0;
            cuentasMovimiento.CondicionVentaId         = ventaData.CondicionVentaSeleccionada;
            cuentasMovimiento.NroMovimiento            = pagoDeposito.Numero;
            cuentasMovimiento.Descripcion              = "DEPOSITO NRO " + pagoDeposito.Numero.ToString();
            cuentasMovimiento.FechaCobro               = _clock.Now;
            cuentasMovimiento.Debito         = 0;
            cuentasMovimiento.Credito        = pago.Importe;
            cuentasMovimiento.TipoCarga      = 2;
            cuentasMovimiento.CajaId         = caja.Id;
            cuentasMovimiento.FechaAlta      = _clock.Now;
            cuentasMovimiento.OperadorAltaId = ventaData.OperadorId;
            cuentasMovimiento.SucursalAltaId = ventaData.SucursalId;

            Uow.CuentasMovimientos.Agregar(cuentasMovimiento);
        }
        public CajaMovimiento_ convert(CajaMovimiento c)
        {
            JsonSerializer  serializer = new JsonSerializer();
            JObject         json       = JObject.Parse(JsonConvert.SerializeObject(c));
            CajaMovimiento_ p          = (CajaMovimiento_)serializer.Deserialize(new JTokenReader(json), typeof(CajaMovimiento_));

            return(p);
        }
Ejemplo n.º 7
0
        private void AgregarMovimientos(OrdenesPagoDetalle pago, DetalleFormaPago vPago)
        {
            var movimiento = new CajaMovimiento();

            movimiento.Id                   = Guid.NewGuid();
            movimiento.Importe              = pago.ImportePagado;
            movimiento.ComprobanteId        = _ordenPago.Id;
            movimiento.TipoComprobante      = TipoComprobanteEnum.OrdenPago;
            movimiento.TipoMovimientoCajaId = vPago.IsDeleted ? TipoMovimientoCajaEnum.AnulaciónOrdenPago : TipoMovimientoCajaEnum.PagoGastos;
            movimiento.PcAlta               = Environment.MachineName;

            movimiento.CajaId = _cajaActual.Id;

            if (pago.Efectivo.HasValue && pago.Efectivo != 0)
            {
                //Si ImportePagado <> 0 => Pago Normal en Efectivo
                //Si ImportePagado = 0 => Pago Programado
                if (pago.ImportePagado.HasValue && pago.ImportePagado != 0)
                {
                    movimiento.Efectivo = pago.Efectivo;

                    var pagoEfec = vPago as PagoEfectivo;

                    if (pagoEfec.CajaAnterior)
                    {
                        ActualizarCajaAnterior(pagoEfec, _cajaActual, movimiento);
                    }
                    else
                    {
                        ActualizarCajaActual(pago, _cajaActual);
                    }

                    Uow.Cajas.Modificar(_cajaActual);
                }
            }

            if (pago.Cheques.HasValue && pago.Cheques != 0)
            {
                movimiento.Cheque = pago.ImportePagado;
            }

            if (pago.DepositoEfectivo.HasValue && pago.DepositoEfectivo != 0)
            {
                movimiento.Deposito = pago.ImportePagado;
            }

            if (pago.Transferencia.HasValue && pago.Transferencia != 0)
            {
                movimiento.Transferencia = pago.ImportePagado;
            }

            movimiento.FechaAlta      = pago.Id == default(Guid) ? _clock.Now : pago.FechaAlta;
            movimiento.SucursalAltaId = Context.SucursalActual.Id;
            movimiento.OperadorAltaId = Context.OperadorActual.Id;

            Uow.CajaMovimientos.Agregar(movimiento);
        }
Ejemplo n.º 8
0
        private void AgregarMovimientos()
        {
            var movimiento = new CajaMovimiento();

            movimiento.Id                   = Guid.NewGuid();
            movimiento.Importe              = _ordenPagoDetalle.ImportePagado;
            movimiento.ComprobanteId        = _ordenPagoId;
            movimiento.TipoComprobante      = TipoComprobanteEnum.OrdenPago;
            movimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.PagoGastos;
            Caja caja = this.Context.CajaActual;

            movimiento.CajaId = caja.Id;
            if (_esEfectivo)
            {
                movimiento.Efectivo         = _ordenPagoDetalle.ImportePagado;
                caja.Egresos               += (float)(_ordenPagoDetalle.ImportePagado ?? 0);
                caja.Saldo                 -= (float)(_ordenPagoDetalle.ImportePagado ?? 0);
                caja.FechaModificacion      = _pagoId == default(Guid) ? (DateTime?)null : _clock.Now;
                caja.SucursalModificacionId = _pagoId == default(Guid)
               ? null
               : caja.SucursalModificacionId;
                caja.OperadorModificacionId = _pagoId == default(Guid)
                ? null
                : caja.OperadorModificacionId;
                Uow.Cajas.Modificar(caja);
            }
            else
            {
                movimiento.Cheque = _ordenPagoDetalle.ImportePagado;
            }

            movimiento.FechaAlta         = _pagoId == default(Guid) ? _clock.Now : _ordenPagoDetalle.FechaAlta;
            movimiento.FechaModificacion = _pagoId == default(Guid) ? (DateTime?)null : _clock.Now;

            movimiento.SucursalAltaId = _pagoId == default(Guid)
                ? Context.SucursalActual.Id
                : movimiento.SucursalAltaId;

            movimiento.SucursalModificacionId = _pagoId == default(Guid)
                ? null
                : movimiento.SucursalModificacionId;

            movimiento.OperadorAltaId = _pagoId == default(Guid)
                ? Context.OperadorActual.Id
                : movimiento.OperadorAltaId;

            movimiento.OperadorModificacionId = _pagoId == default(Guid)
                ? null
                : movimiento.OperadorModificacionId;

            Uow.CajaMovimientos.Agregar(movimiento);
        }
 public ActionResult DeleteConfirmed(int id)
 {
     try
     {
         CajaMovimiento cajaMovimiento = db.CajaMovimiento.Find(id);
         db.CajaMovimiento.Remove(cajaMovimiento);
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     catch (Exception ex)
     {
         return(View("Error", new HandleErrorInfo(ex, "CajaMovimiento", "Create")));
     }
 }
Ejemplo n.º 10
0
 private void ActualizarCajaActual(OrdenesPagoDetalle pago, CajaMovimiento movimiento, Caja caja)
 {
     movimiento.Efectivo         = pago.Efectivo;
     caja.Egresos               += (float)(pago.Efectivo ?? 0);
     caja.Saldo                 -= (float)(pago.Efectivo ?? 0);
     caja.FechaModificacion      = pago.Id == default(Guid) ? (DateTime?)null : _clock.Now;
     caja.SucursalModificacionId = pago.Id == default(Guid)
                                       ? (int?)null
                                       : _context.SucursalActual.Id;
     caja.OperadorModificacionId = pago.Id == default(Guid)
                                       ? (Guid?)null
                                       : _context.OperadorActual.Id;
     _uow.Cajas.Modificar(caja);
 }
 public ActionResult Edit([Bind(Include = "idCaja,secuencia,idTipoMoviento,idTipoMedioPago,monto")] CajaMovimiento cajaMovimiento)
 {
     try
     {
         if (ModelState.IsValid)
         {
             db.Entry(cajaMovimiento).State = EntityState.Modified;
             db.SaveChanges();
             return(RedirectToAction("Index"));
         }
         ViewBag.idCaja         = new SelectList(db.Caja, "idCaja", "usuario", cajaMovimiento.idCaja);
         ViewBag.idTipoMoviento = new SelectList(db.CajaTipoMoviento, "idCajaMovimiento", "descripcion", cajaMovimiento.idTipoMoviento);
         return(View(convert(cajaMovimiento)));
     }
     catch (Exception ex)
     {
         return(View("Error", new HandleErrorInfo(ex, "CajaMovimiento", "Create")));
     }
 }
 // GET: CajaMovimiento/Details/5
 public ActionResult Details(int?id)
 {
     try
     {
         if (id == null)
         {
             return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
         }
         CajaMovimiento cajaMovimiento = db.CajaMovimiento.Find(id);
         if (cajaMovimiento == null)
         {
             return(HttpNotFound());
         }
         return(View(convert(cajaMovimiento)));
     }
     catch (Exception ex)
     {
         return(View("Error", new HandleErrorInfo(ex, "CajaMovimiento", "Create")));
     }
 }
Ejemplo n.º 13
0
        public CajaMovimiento Create(TipoComprobanteEnum tipoComprobante, TipoMovimientoCajaEnum tipoMovimiento, Guid comprobanteId, decimal importe)
        {
            CajaMovimiento cajaMovimiento = new CajaMovimiento();

            cajaMovimiento.Id                     = Guid.NewGuid();
            cajaMovimiento.CajaId                 = _context.CajaActual.Id;
            cajaMovimiento.TipoComprobante        = tipoComprobante;
            cajaMovimiento.TipoMovimientoCajaId   = tipoMovimiento;
            cajaMovimiento.ComprobanteId          = comprobanteId;
            cajaMovimiento.Importe                = importe;
            cajaMovimiento.ImpFac                 = importe;
            cajaMovimiento.FechaAlta              = _clock.Now;
            cajaMovimiento.FechaModificacion      = _clock.Now;
            cajaMovimiento.PcAlta                 = System.Environment.MachineName;
            cajaMovimiento.OperadorAltaId         = _context.OperadorActual.Id;
            cajaMovimiento.SucursalAltaId         = _context.SucursalActual.Id;
            cajaMovimiento.OperadorModificacionId = _context.OperadorActual.Id;
            cajaMovimiento.SucursalModificacionId = _context.SucursalActual.Id;

            return(cajaMovimiento);
        }
 // GET: CajaMovimiento/Edit/5
 public ActionResult Edit(int?id)
 {
     try
     {
         if (id == null)
         {
             return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
         }
         CajaMovimiento cajaMovimiento = db.CajaMovimiento.Find(id);
         if (cajaMovimiento == null)
         {
             return(HttpNotFound());
         }
         ViewBag.idCaja         = new SelectList(db.Caja, "idCaja", "usuario", cajaMovimiento.idCaja);
         ViewBag.idTipoMoviento = new SelectList(db.CajaTipoMoviento, "idCajaMovimiento", "descripcion", cajaMovimiento.idTipoMoviento);
         return(View(cajaMovimiento));
     }
     catch (Exception ex)
     {
         return(View("Error", new HandleErrorInfo(ex, "CajaMovimiento", "Create")));
     }
 }
Ejemplo n.º 15
0
        private void RegistrarCajaYCajaMovimiento()
        {
            var caja = Uow.Cajas.Listado().Where(c => c.OperadorId == Context.OperadorActual.Id && c.FCierre == null).OrderByDescending(c => c.FechaAlta).FirstOrDefault();

            caja.Ingresos = (caja.Ingresos ?? 0) + (_pagoCelular.Vales ?? 0) + (_pagoCelular.Efectivo ?? 0);

            caja.Saldo = (caja.Saldo ?? 0) + (_pagoCelular.Vales ?? 0) + (_pagoCelular.Efectivo ?? 0);
            if (_pagoCelular.Efectivo != null)
            {
                caja.Efectivo += _pagoCelular.Efectivo;
            }
            if (_pagoCelular.Vales != null)
            {
                caja.Vales += _pagoCelular.Vales;
            }
            caja.FechaModificacion      = _clock.Now;
            caja.OperadorModificacionId = Context.OperadorActual.Id;
            caja.SucursalModificacionId = Context.SucursalActual.Id;

            Uow.Cajas.Modificar(caja);

            var cajaMovimiento = new CajaMovimiento();

            cajaMovimiento.Id     = Guid.NewGuid();
            cajaMovimiento.CajaId = caja.Id;
            cajaMovimiento.TipoMovimientoCajaId = 1;               //Pago de sistema
            cajaMovimiento.TipoComprobante      = 2;               //Pago de sistema
            cajaMovimiento.ComprobanteId        = _pagoCelular.Id; //id del pago Celular
            cajaMovimiento.Senia          = _pagoCelular.Senia;
            cajaMovimiento.Importe        = _pagoCelular.Monto;
            cajaMovimiento.ImpFac         = (_pagoCelular.Efectivo ?? 0) + (_pagoCelular.Vales ?? 0);// ucPagos1.Total; //_pagoCelular.Monto;
            cajaMovimiento.Efectivo       = _pagoCelular.Efectivo;
            cajaMovimiento.Vales          = _pagoCelular.Vales;
            cajaMovimiento.FechaAlta      = _clock.Now;
            cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id;
            cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id;

            Uow.CajaMovimientos.Agregar(cajaMovimiento);
        }
Ejemplo n.º 16
0
        private void ActualizarCajaAnterior(PagoEfectivo pagoEfec, Caja caja, CajaMovimiento cajaMovimiento)
        {
            cajaMovimiento.CajaId               = caja.Id;
            cajaMovimiento.TipoComprobante      = TipoComprobanteEnum.OrdenPago;
            cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.DepositoConCajaAnterior;
            cajaMovimiento.ComprobanteId        = _ordenPago.Id;
            cajaMovimiento.Importe              = pagoEfec.Importe;

            if (cajaMovimiento.Efectivo == null)
            {
                cajaMovimiento.Efectivo = 0;
            }

            cajaMovimiento.Efectivo = pagoEfec.Importe;

            if (caja.Saldo == null)
            {
                caja.Saldo = 0;
            }

            //Pago Efectivo para Caja Anterior solo se Modifica el Saldo Acumulado
            caja.Saldo -= (float?)pagoEfec.Importe;
        }
Ejemplo n.º 17
0
        private void SavePagoBase()
        {
            if (ucListadoPago1.PagosBases.Count == 0)
            {
                MessageBox.Show("Debe ingresar al menos un pago para poder guardar");
                return;
            }

            decimal?Efectivo  = 0;
            decimal?Vales     = 0;
            decimal?Taller    = 0;
            decimal?Descuento = 0;
            decimal?Senia     = 0;

            foreach (var item in ucPagos.Pagos)
            {
                if (item.TipoPago == "Efectivo")
                {
                    Efectivo += item.Importe;
                }
                else if (item.TipoPago == "Vales")
                {
                    Vales += item.Importe;
                }
                else if (item.TipoPago == "Taller")
                {
                    Taller += item.Importe;
                }
                else if (item.TipoPago == "Descuento")
                {
                    Descuento += item.Importe;
                }
                else if (item.TipoPago == "A Favor")
                {
                    Senia += item.Importe;
                }
            }

            //actualizo la caja
            var caja = Uow.Cajas.Listado().Where(c => c.OperadorId == Context.OperadorActual.Id && c.FCierre == null).OrderByDescending(c => c.FechaAlta).FirstOrDefault();

            if (caja == null)
            {
                return;
            }
            caja.Ingresos = (caja.Ingresos ?? 0) + (ucPagos.TotalPagos() ?? 0);


            caja.Saldo     = (caja.Saldo ?? 0) + (ucPagos.TotalPagos() ?? 0);
            caja.Efectivo += Efectivo;
            caja.Vales    += Vales;

            caja.OperadorModificacionId = Context.OperadorActual.Id;
            caja.SucursalModificacionId = Context.SucursalActual.Id;

            Uow.Cajas.Modificar(caja);



            //pagos bases
            var pagosBases = new PagosBas();

            pagosBases.Id             = Guid.NewGuid();
            pagosBases.PagoMovil      = null; //aca tienen que venir el movil que hace el pago
            pagosBases.FechaAlta      = _clock.Now;
            pagosBases.OperadorAltaId = Context.OperadorActual.Id;
            pagosBases.SucursalAltaId = Context.SucursalActual.Id;

            Uow.PagosBases.Agregar(pagosBases);

            //Creo la caja movimiento
            var cajaMovimiento = new CajaMovimiento();

            cajaMovimiento.Id     = Guid.NewGuid();
            cajaMovimiento.CajaId = caja.Id;
            cajaMovimiento.TipoMovimientoCajaId = 4;
            cajaMovimiento.TipoComprobante      = 6;
            cajaMovimiento.ComprobanteId        = pagosBases.Id;
            cajaMovimiento.Importe  = ucPagos.Importe;
            cajaMovimiento.Efectivo = Efectivo;
            cajaMovimiento.Vales    = Vales;
            //cajaMovimiento.Taller
            //cajaMovimiento.PcAlta=Syst
            cajaMovimiento.FechaAlta      = _clock.Now;
            cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id;
            cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id;
            Uow.CajaMovimientos.Agregar(cajaMovimiento);


            for (int i = 0; i < ucListadoPago1.PagosBases.Count; i++)
            {
                //MessageBox.Show(ucListadoPago1.PagosBases[i].Movil.Numero.ToString());

                //PAGO MOVIL
                var pagoMovil = new PagosMovile();
                pagoMovil.Id             = Guid.NewGuid();
                pagoMovil.PagoBaseId     = pagosBases.Id;
                pagoMovil.Desde          = ucListadoPago1.PagosBases[i].Desde;
                pagoMovil.Hasta          = ucListadoPago1.PagosBases[i].Hasta;
                pagoMovil.Efectivo       = ucListadoPago1.PagosBases[i].SubTotal;
                pagoMovil.Monto          = ucListadoPago1.PagosBases[i].Total;
                pagoMovil.MovilId        = ucListadoPago1.PagosBases[i].Movil.Id;
                pagoMovil.FechaAlta      = _clock.Now;
                pagoMovil.OperadorAltaId = Context.OperadorActual.Id;
                pagoMovil.SucursalAltaId = Context.SucursalActual.Id;
                pagoMovil.Anulada        = false;

                Uow.PagosMoviles.Agregar(pagoMovil);

                if (ucListadoPago1.PagosBases[i].Taller > 0)
                {
                    var movil    = ucListadoPago1.PagosBases[i].Movil.Id;
                    var talleres = Uow.TalleresMoviles.Listado().Where(t => t.MovilId == movil && t.Acreditado == false).FirstOrDefault();
                    talleres.Acreditado = true;
                    Uow.TalleresMoviles.Modificar(talleres);
                }
            }

            //Monto a Favor al primer  movil
            var montoAfavor = ucPagos.Pagos.Sum(p => p.Importe) - ucListadoPago1._pagosBases.Sum(t => t.Total);

            if (montoAfavor != 0)
            {
                var movilesMontoFavor = new MovilesMontoFavor();
                movilesMontoFavor.Id                = Guid.NewGuid();
                movilesMontoFavor.MovilId           = ucListadoPago1.PagosBases[0].Movil.Id;
                movilesMontoFavor.TipoComprobanteId = 7; //Montno a Favor BASE;
                movilesMontoFavor.Concepto          = "Monto a favor por pago de base";
                movilesMontoFavor.FechaAlta         = _clock.Now;
                movilesMontoFavor.FechaComprobante  = _clock.Now;
                movilesMontoFavor.ImpOcupado        = 0;
                movilesMontoFavor.Importe           = montoAfavor;
                movilesMontoFavor.SucursalAltaId    = Context.SucursalActual.Id;
                movilesMontoFavor.OperadorAltaId    = Context.OperadorActual.Id;
                Uow.MovilesMontosFavor.Agregar(movilesMontoFavor);
            }
            Uow.Commit();
            MessageBox.Show("Pago de base guardado correctamente");
            //this.Close();
        }
Ejemplo n.º 18
0
        private void BtnEliminarPago_Click(object sender, EventArgs e)
        {
            var selectedRow = this.dgvhistorial.Rows[0];
            var pago        = selectedRow.DataBoundItem as HistorialPagosChofer_Result;

            if (pago == null)
            {
                return;
            }

            var _pago = Uow.PagosCelulares.Obtener(p => p.Id == pago.Id);

            //ANULO EL PAGO
            _pago.Anulada        = true;
            _pago.FechaAnulacion = _clock.Now;
            //_pago.OperadorAutoriza= Operador autorizacion
            Uow.PagosCelulares.Modificar(_pago);

            //MODIFICAR CAJA Y CAJA MOVIMIENTO
            var caja = Uow.Cajas.Listado().Where(c => c.OperadorId == Context.OperadorActual.Id && c.FCierre == null).OrderByDescending(c => c.FechaAlta).FirstOrDefault();

            caja.Ingresos = (caja.Ingresos ?? 0) - (pago.Efectivo ?? 0) - (pago.Vales ?? 0);
            caja.Saldo    = (caja.Saldo ?? 0) - (pago.Efectivo ?? 0) - (pago.Vales ?? 0);
            if (pago.Efectivo != null)
            {
                caja.Efectivo -= pago.Efectivo;
            }
            if (pago.Vales != null)
            {
                caja.Vales -= pago.Vales;
            }

            caja.FechaModificacion      = _clock.Now;
            caja.OperadorModificacionId = Context.OperadorActual.Id;
            caja.SucursalModificacionId = Context.SucursalActual.Id;

            Uow.Cajas.Modificar(caja);

            var cajaMovimiento = new CajaMovimiento();

            cajaMovimiento.Id     = Guid.NewGuid();
            cajaMovimiento.CajaId = caja.Id;
            cajaMovimiento.TipoMovimientoCajaId = 1;       //Pago de sistema
            cajaMovimiento.TipoComprobante      = 3;       //Anulacion Pago de sistema
            cajaMovimiento.ComprobanteId        = pago.Id; //id del pago Celular
            cajaMovimiento.Senia = pago.Senia;
            if (pago.Senia > 0)
            {
                var choferMontoFavor = new ChoferMontoFavor();
                choferMontoFavor.Id                = Guid.NewGuid();
                choferMontoFavor.ChoferId          = pago.Chofer;
                choferMontoFavor.FechaAlta         = DateTime.Now;
                choferMontoFavor.FechaComprobante  = DateTime.Now;
                choferMontoFavor.TipoComprobanteId = 1;
                choferMontoFavor.Concepto          = "Monto a favor";
                choferMontoFavor.ImpOcupado        = 0;
                choferMontoFavor.SucursalAltaId    = Context.SucursalActual.Id;
                choferMontoFavor.OperadorAltaId    = Context.OperadorActual.Id;
                choferMontoFavor.Importe           = pago.Senia;

                Uow.ChoferesMontosFavor.Agregar(choferMontoFavor);
            }
            cajaMovimiento.Importe        = pago.Monto;
            cajaMovimiento.ImpFac         = (pago.Efectivo ?? 0) + (pago.Vales ?? 0);
            cajaMovimiento.Efectivo       = pago.Efectivo;
            cajaMovimiento.Vales          = pago.Vales;
            cajaMovimiento.FechaAlta      = _clock.Now;
            cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id;
            cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id;

            Uow.CajaMovimientos.Agregar(cajaMovimiento);


            Uow.Commit();


            var _pagonuevo = Uow.PagosCelulares.Listado().Where(p => p.CelularId == _pago.CelularId && p.Anulada != true).OrderByDescending(g => g.FechaAlta).FirstOrDefault();
            var celular    = Uow.Celulares.Obtener(c => c.Id == _pago.CelularId);

            if (_pagonuevo != null)
            {
                //modifico fecha de proximo pago en el celular

                celular.FechaVencimientoPago = _pagonuevo.Hasta;
                celular.FechaProximoPago     = (_pagonuevo.Hasta ?? DateTime.Now).AddDays(-2);
            }
            else
            {
                celular.FechaVencimientoPago = null;
                celular.FechaProximoPago     = null;
                celular.FechaUltimoPago      = null;
            }


            Uow.Celulares.Modificar(celular);
            Uow.Commit();

            MessageBox.Show("Pago eliminado correctamente");
            HistorialPagosChofer(_pago.ChoferId ?? Guid.Empty);

            //guardar comentario
            //ucComentarios.GenerarComentario(chofer.Id, "Pago del " + DesdeComent.ToString("dd/MM/yyyy") + " al " + HastaComent.ToString("dd/MM/yyyy") + ". Monto: $" + _pagoCelular.Monto);
            OnComentarioAdd("Pago anulado del " + _pago.Desde.ToString().Remove(10) + " hasta el " + _pago.Hasta.ToString().Remove(10));
        }
Ejemplo n.º 19
0
        private void BtnGuardar_Click(object sender, EventArgs e)
        {
            if (_venta.EstadoVentaId == EstadoVentaEnum.Anulada)
            {
                _messageBoxDisplayService.ShowWarning("Factura ya anulada");
                return;
            }

            var operador = this.ObtenerOperadorAdministrador();

            if (operador == null)
            {
                return;
            }

            if (!this.EsOperadorAdmin)
            {
                //Guardamos el operador que autorizo la operacion.
                _venta.OperadorAutoriza = operador.Id;
            }

            //Anular la Venta
            _venta.EstadoVentaId          = EstadoVentaEnum.Anulada;
            _venta.FechaModificacion      = _clock.Now;
            _venta.OperadorModificacionId = Context.OperadorActual.Id;
            _venta.SucursalModificacionId = Context.SucursalActual.Id;

            Uow.Ventas.Modificar(_venta);

            //devolver el stock
            foreach (VentaDetalleDto ventaDetalleDto in _ventaDetalleDto)
            {
                var tituloStock =
                    Uow.TitulosStock.Obtener(
                        ts => ts.TituloId == ventaDetalleDto.TituloId && ts.SucursalId == Context.SucursalActual.Id);

                tituloStock.StkPr                 += ventaDetalleDto.CantidadPropia;
                tituloStock.StkCn                 += ventaDetalleDto.CantidadConsig;
                tituloStock.FechaModificacion      = _clock.Now;
                tituloStock.OperadorModificacionId = Context.OperadorActual.Id;
                tituloStock.SucursalModificacionId = Context.SucursalActual.Id;

                Uow.TitulosStock.Modificar(tituloStock);
            }

            //Devovler caja
            Caja caja = this.Context.CajaActual;

            if (caja.Ingresos == null)
            {
                caja.Ingresos = 0;
            }
            caja.Ingresos -= (float?)_venta.TotalPagado;
            if (caja.Saldo == null)
            {
                caja.Saldo = 0;
            }
            caja.Saldo                 -= (float?)_venta.TotalPagado;
            caja.FechaModificacion      = _clock.Now;
            caja.SucursalModificacionId = Context.SucursalActual.Id;   //Sucursal del operador
            caja.OperadorModificacionId = (Context.OperadorActual.Id); //Id el operador

            Uow.Cajas.Modificar(caja);

            //CajaMovimiento
            var cajaMovimientoAnterior = Uow.CajaMovimientos.Obtener(c => c.ComprobanteId == _venta.Id);

            CajaMovimiento cajaMovimiento = new CajaMovimiento();

            cajaMovimiento.Id     = Guid.NewGuid();
            cajaMovimiento.CajaId = caja.Id;
            if (_venta.CondicionVentaId == CondicionVentaEnum.CuentaCorriente)
            {
                cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.AnulaciónFacCtaCte;
            }
            else
            {
                cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.AnulaciónFacContado;
            }

            cajaMovimiento.TipoComprobante = TipoComprobanteEnum.FacturaAnulada;
            cajaMovimiento.ComprobanteId   = _venta.Id;
            cajaMovimiento.Senia           = cajaMovimientoAnterior.Senia;
            cajaMovimiento.Importe         = cajaMovimientoAnterior.Importe;
            cajaMovimiento.ImpFac          = cajaMovimientoAnterior.ImpFac;
            cajaMovimiento.Recargo         = cajaMovimientoAnterior.Recargo;
            cajaMovimiento.Efectivo        = cajaMovimientoAnterior.Efectivo;
            cajaMovimiento.Tarjeta         = cajaMovimientoAnterior.Tarjeta;
            cajaMovimiento.Cheque          = cajaMovimientoAnterior.Cheque;
            cajaMovimiento.Deposito        = cajaMovimientoAnterior.Deposito;

            cajaMovimiento.PcAlta         = Environment.MachineName;
            cajaMovimiento.SucursalAltaId = _venta.SucursalAltaId;
            cajaMovimiento.OperadorAltaId = _venta.OperadorAltaId;
            cajaMovimiento.FechaAlta      = _clock.Now;

            cajaMovimiento.SucursalModificacionId = Context.SucursalActual.Id;   //Sucursal del operador
            cajaMovimiento.OperadorModificacionId = (Context.OperadorActual.Id); //Id el operador
            cajaMovimiento.FechaModificacion      = _clock.Now;

            Uow.CajaMovimientos.Agregar(cajaMovimiento);

            //MovimientoCliente
            ClientesMovimiento clientesMovimiento = new ClientesMovimiento();

            clientesMovimiento.IdCliente         = _venta.ClienteId;
            clientesMovimiento.IdTipoComprobante = (int)TipoComprobanteEnum.FacturaAnulada;
            clientesMovimiento.IdComprobante     = _venta.Id;
            clientesMovimiento.Concepto          = TipoComprobanteEnum.FacturaAnulada.ToString();
            clientesMovimiento.Debe            = _venta.TotalPagado;
            clientesMovimiento.FechaGeneracion = _clock.Now;
            clientesMovimiento.FechaAlta       = _clock.Now;
            clientesMovimiento.SucursalAltaId  = Context.SucursalActual.Id;   //Sucursal del operador
            clientesMovimiento.OperadorAltaId  = (Context.OperadorActual.Id); //Id el operador

            Uow.ClientesMovimientos.Agregar(clientesMovimiento);

            //Actulizar señas de cliente
            var monto = cajaMovimientoAnterior.Senia;

            if (monto > 0 && monto != null)
            {
                int sucursal = 1;
                ClienteMontoFavor clienteMontoFavor = new ClienteMontoFavor();
                clienteMontoFavor.Id                = Guid.NewGuid();
                clienteMontoFavor.ClienteId         = _venta.ClienteId;
                clienteMontoFavor.FechaComprobante  = _clock.Now;
                clienteMontoFavor.TipoComprobanteId = TipoComprobanteEnum.SeñaCliente;
                clienteMontoFavor.LCN               = "R" + sucursal.ToString().PadLeft(4, '0') + CalcularLCN().PadLeft(8, '0');
                clienteMontoFavor.Concepto          = "Seña " + clienteMontoFavor.LCN;
                clienteMontoFavor.Importe           = monto;
                clienteMontoFavor.ImpOcupado        = 0;
                clienteMontoFavor.Observaciones     = TipoComprobanteEnum.SeñaCliente.ToString() + "Por anulación de factura";
                clienteMontoFavor.FechaAlta         = _clock.Now;
                clienteMontoFavor.OperadorAltaId    = Context.OperadorActual.Id;
                clienteMontoFavor.SucursalAltaId    = Context.SucursalActual.Id;

                Uow.ClientesMontosFavor.Agregar(clienteMontoFavor);
            }

            //si la venta fue en CuentaCorriente, Anular las cuotas
            if (_venta.CondicionVentaId == CondicionVentaEnum.CuentaCorriente)
            {
                var cuotas = Uow.ClientesCuentasCorrientes.Listado().Where(cc => cc.VentaId == _venta.Id);
                foreach (ClienteCuentaCorriente cuota in cuotas)
                {
                    cuota.Pagado                 = cuota.Importe;
                    cuota.Observaciones          = "Venta Anulada";
                    cuota.FechaModificacion      = _clock.Now;
                    cuota.OperadorModificacionId = Context.OperadorActual.Id;
                    cuota.SucursalModificacionId = Context.SucursalActual.Id;

                    Uow.ClientesCuentasCorrientes.Modificar(cuota);
                }
            }

            //Si la venta fue con tarjeta, setear en 0 el estado del movimiento
            if (cajaMovimientoAnterior.Tarjeta != null)
            {
                var tarjetamovimiento =
                    Uow.TarjetasMovimientos.Obtener(t => t.CajaMovimientoId == cajaMovimientoAnterior.Id);

                if (tarjetamovimiento != null)
                {
                    tarjetamovimiento.Estado                 = 0;
                    tarjetamovimiento.FechaModificacion      = _clock.Now;
                    tarjetamovimiento.OperadorModificacionId = Context.OperadorActual.Id;
                    tarjetamovimiento.SucursalModificacionId = Context.SucursalActual.Id;

                    Uow.TarjetasMovimientos.Modificar(tarjetamovimiento);
                }
            }

            //si la venta fue con deposito, setear la columna debito=credito para que se anule
            if (cajaMovimientoAnterior.Deposito != null)
            {
                var cuentaMovimiento =
                    Uow.CuentasMovimientos.Obtener(t => t.ComprobanteId == _venta.Id);

                if (cuentaMovimiento != null)
                {
                    cuentaMovimiento.Debito                 = cuentaMovimiento.Credito;
                    cuentaMovimiento.FechaModificacion      = _clock.Now;
                    cuentaMovimiento.OperadorModificacionId = Context.OperadorActual.Id;
                    cuentaMovimiento.SucursalModificacionId = Context.SucursalActual.Id;

                    Uow.CuentasMovimientos.Modificar(cuentaMovimiento);
                }
            }

            //si la venta fue con Cheque, setear estadocheque=1
            if (cajaMovimientoAnterior.Cheque != null)
            {
                var chequeTercero =
                    Uow.ChequesTercero.Obtener(t => t.CajaMovimientoId == cajaMovimientoAnterior.Id);

                if (chequeTercero != null)
                {
                    chequeTercero.EstadoChequeId         = 1;
                    chequeTercero.FechaModificacion      = _clock.Now;
                    chequeTercero.OperadorModificacionId = Context.OperadorActual.Id;
                    chequeTercero.SucursalModificacionId = Context.SucursalActual.Id;

                    Uow.ChequesTercero.Modificar(chequeTercero);
                }
            }


            Uow.Commit();
            _messageBoxDisplayService.ShowSuccess("Factura anulada correctamente");

            //this.Close();
            OnAccionTerminada();
        }
Ejemplo n.º 20
0
        public void AgregarMovimientos(OrdenesPago ordenPago, OrdenesPagoDetalle pago, DetalleFormaPago vPago)
        {
            var movimiento         = new CajaMovimiento();
            var movimientoAnterior = new CajaMovimiento();

            if (vPago.IsDeleted)
            {
                movimientoAnterior = _uow.CajaMovimientos.Obtener(c => c.ComprobanteId == ordenPago.Id);
            }

            movimiento.Id                   = Guid.NewGuid();
            movimiento.Importe              = pago.ImportePagado;
            movimiento.ComprobanteId        = ordenPago.Id;
            movimiento.TipoComprobante      = TipoComprobanteEnum.OrdenPago;
            movimiento.TipoMovimientoCajaId = vPago.IsDeleted ? movimientoAnterior.TipoMovimientoCajaId : TipoMovimientoCajaEnum.PagoGastos;
            //movimiento.TipoMovimientoCajaId = vPago.IsDeleted ? TipoMovimientoCajaEnum.AnulaciónOrdenPago : TipoMovimientoCajaEnum.PagoGastos;
            movimiento.PcAlta = Environment.MachineName;
            movimiento.CajaId = _cajaActual.Id;

            if (pago.Efectivo.HasValue && pago.Efectivo != 0)
            {
                //Si ImportePagado <> 0 => Pago Normal en Efectivo
                //Si ImportePagado = 0 => Pago Programado
                if (pago.ImportePagado.HasValue && pago.ImportePagado != 0)
                {
                    var pagoEfec = vPago as PagoEfectivo;

                    if (pagoEfec.CajaAnterior)
                    {
                        ActualizarCajaAnterior(ordenPago, pagoEfec, _cajaActual, movimiento);
                    }
                    else
                    {
                        ActualizarCajaActual(pago, movimiento, _cajaActual);
                    }
                }

                movimiento.Efectivo = pago.Efectivo;
            }

            if (pago.Cheques.HasValue && (pago.Cheques > 0 || pago.Cheques < 0))
            {
                movimiento.Cheque = pago.Cheques;
            }

            if (pago.DepositoEfectivo.HasValue && (pago.DepositoEfectivo > 0 || pago.DepositoEfectivo < 0))
            {
                movimiento.Deposito = pago.DepositoEfectivo;
            }

            if (pago.Transferencia.HasValue && (pago.Transferencia > 0 || pago.Transferencia < 0))
            {
                movimiento.Transferencia = pago.Transferencia;
            }

            //   movimiento.FechaAlta = pago.Id == default(Guid) ? _clock.Now : pago.FechaAlta;

            movimiento.FechaAlta = DateTime.Now;// pago.Id == default(Guid) ? _clock.Now : pago.FechaAlta;


            movimiento.SucursalAltaId = _context.SucursalActual.Id;
            movimiento.OperadorAltaId = _context.OperadorActual.Id;

            _uow.CajaMovimientos.Agregar(movimiento);
        }
Ejemplo n.º 21
0
        public void AnularSeniaProveedor(ProveedorSenia senia, Caja caja, Guid operadorId, int sucursalId)
        {
            using (var uow = UowFactory.Create <ILaPazUow>())
            {
                var diferencia = senia.Importe - senia.ImporteUsado;
                if (diferencia == 0)
                {
                    return;
                }

                senia.ImporteUsado           = senia.Importe;
                senia.FechaAnulacion         = _clock.Now;
                senia.FechaModificacion      = _clock.Now;
                senia.OperadorModificacionId = operadorId;
                senia.SucursalModificacionId = sucursalId;

                uow.ProveedoresSenias.Modificar(senia);

                if (caja.Ingresos == null)
                {
                    caja.Ingresos = 0;
                }
                caja.Egresos += (float?)diferencia;
                if (caja.Saldo == null)
                {
                    caja.Saldo = 0;
                }
                caja.Saldo                 -= (float?)diferencia;
                caja.FechaModificacion      = _clock.Now;
                caja.SucursalModificacionId = sucursalId;
                caja.OperadorModificacionId = operadorId;

                uow.Cajas.Modificar(caja);

                //Se deben buscar todas las cajasMovimientos
                var cajaMovimientoAnterior = uow.CajaMovimientos.Listado().Where(cm => cm.ComprobanteId == senia.Id);
                foreach (CajaMovimiento movimiento in cajaMovimientoAnterior)
                {
                    CajaMovimiento cajaMovimiento = new CajaMovimiento();
                    cajaMovimiento.Id     = Guid.NewGuid();
                    cajaMovimiento.CajaId = caja.Id;
                    cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.AnulacionSeniaProveedor;
                    cajaMovimiento.TipoComprobante      = TipoComprobanteEnum.SeñaCliente;
                    cajaMovimiento.ComprobanteId        = senia.Id;
                    cajaMovimiento.Senia = 0;
                    //analizar para Anulaciones Parciales
                    cajaMovimiento.Importe        = movimiento.Importe;
                    cajaMovimiento.Efectivo       = movimiento.Efectivo;
                    cajaMovimiento.Tarjeta        = movimiento.Tarjeta;
                    cajaMovimiento.Cheque         = movimiento.Cheque;
                    cajaMovimiento.Deposito       = movimiento.Deposito;
                    cajaMovimiento.ImpFac         = 0;
                    cajaMovimiento.PcAlta         = Environment.MachineName;
                    cajaMovimiento.SucursalAltaId = sucursalId;
                    cajaMovimiento.OperadorAltaId = operadorId;
                    cajaMovimiento.FechaAlta      = _clock.Now;
                    uow.CajaMovimientos.Agregar(cajaMovimiento);
                }

                uow.Commit();
            }
        }
        private void BtnEliminarPago_Click(object sender, EventArgs e)
        {
            var selectedRow = this.dgvhistorial.Rows[0];
            var pago = selectedRow.DataBoundItem as HistorialPagosChofer_Result;

            if (pago == null)
                return;

            var _pago = Uow.PagosCelulares.Obtener(p => p.Id ==pago.Id);
            //ANULO EL PAGO
            _pago.Anulada = true;
            _pago.FechaAnulacion = _clock.Now;
            //_pago.OperadorAutoriza= Operador autorizacion
            Uow.PagosCelulares.Modificar(_pago);

            //MODIFICAR CAJA Y CAJA MOVIMIENTO
            var caja = Uow.Cajas.Listado().Where(c => c.OperadorId == Context.OperadorActual.Id && c.FCierre == null).OrderByDescending(c => c.FechaAlta).FirstOrDefault();
            caja.Ingresos = (caja.Ingresos ?? 0) - (pago.Efectivo ?? 0) - (pago.Vales ?? 0);
            caja.Saldo = (caja.Saldo ?? 0) - (pago.Efectivo ?? 0) - (pago.Vales ?? 0);
            if (pago.Efectivo !=null)
            {
                caja.Efectivo -= pago.Efectivo;
            }
            if (pago.Vales != null)
            {
                caja.Vales -= pago.Vales;
            }

            caja.FechaModificacion = _clock.Now;
            caja.OperadorModificacionId = Context.OperadorActual.Id;
            caja.SucursalModificacionId = Context.SucursalActual.Id;

            Uow.Cajas.Modificar(caja);

            var cajaMovimiento = new CajaMovimiento();
            cajaMovimiento.Id = Guid.NewGuid();
            cajaMovimiento.CajaId = caja.Id;
            cajaMovimiento.TipoMovimientoCajaId = 1; //Pago de sistema
            cajaMovimiento.TipoComprobante = 3; //Anulacion Pago de sistema
            cajaMovimiento.ComprobanteId = pago.Id; //id del pago Celular
            cajaMovimiento.Senia = pago.Senia;
            if (pago.Senia > 0)
            {
                var choferMontoFavor =new ChoferMontoFavor();
                choferMontoFavor.Id = Guid.NewGuid();
                choferMontoFavor.ChoferId = pago.Chofer;
                choferMontoFavor.FechaAlta = DateTime.Now ;
                choferMontoFavor.FechaComprobante=DateTime.Now;
                choferMontoFavor.TipoComprobanteId = 1;
                choferMontoFavor.Concepto = "Monto a favor";
                choferMontoFavor.ImpOcupado = 0;
                choferMontoFavor.SucursalAltaId = Context.SucursalActual.Id;
                choferMontoFavor.OperadorAltaId = Context.OperadorActual.Id;
                choferMontoFavor.Importe = pago.Senia;

                Uow.ChoferesMontosFavor.Agregar(choferMontoFavor);

            }
            cajaMovimiento.Importe = pago.Monto;
            cajaMovimiento.ImpFac = (pago.Efectivo ?? 0) + (pago.Vales ?? 0);
            cajaMovimiento.Efectivo = pago.Efectivo;
            cajaMovimiento.Vales = pago.Vales;
            cajaMovimiento.FechaAlta = _clock.Now;
            cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id;
            cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id;

            Uow.CajaMovimientos.Agregar(cajaMovimiento);

            Uow.Commit();

            var _pagonuevo = Uow.PagosCelulares.Listado().Where(p => p.CelularId == _pago.CelularId && p.Anulada != true).OrderByDescending(g=>g.FechaAlta).FirstOrDefault();
            var celular = Uow.Celulares.Obtener(c => c.Id == _pago.CelularId);

            if (_pagonuevo != null)
            {
                //modifico fecha de proximo pago en el celular

                celular.FechaVencimientoPago = _pagonuevo.Hasta;
                celular.FechaProximoPago = (_pagonuevo.Hasta ?? DateTime.Now).AddDays(-2);
            }
            else
            {
                celular.FechaVencimientoPago = null;
                celular.FechaProximoPago = null;
                celular.FechaUltimoPago = null;
            }

            Uow.Celulares.Modificar(celular);
            Uow.Commit();

            MessageBox.Show("Pago eliminado correctamente");
            HistorialPagosChofer(_pago.ChoferId ?? Guid.Empty);

            //guardar comentario
            //ucComentarios.GenerarComentario(chofer.Id, "Pago del " + DesdeComent.ToString("dd/MM/yyyy") + " al " + HastaComent.ToString("dd/MM/yyyy") + ". Monto: $" + _pagoCelular.Monto);
            OnComentarioAdd("Pago anulado del " + _pago.Desde.ToString().Remove(10) + " hasta el " + _pago.Hasta.ToString().Remove(10));
        }
        private void CrearEditar()
        {
            var esValido = this.ValidarForm() && ValidarMontos();

            if (!esValido)
                this.DialogResult = DialogResult.None;
            else
            {
                var entity = ObtenerEntityDesdeForm();
                if (_formMode == ActionFormMode.Create)
                {
                    var cajaActual =
                       Uow.Cajas.Obtener(c => c.OperadorAltaId == Context.OperadorActual.Id && c.FCierre == null);

                    var ordenPago = new OrdenPago();
                    ordenPago.Id = Guid.NewGuid();
                    ordenPago.Fecha = entity.Fecha;
                    ordenPago.ProveedorId = entity.ProveedorId;
                    ordenPago.NumeroComprobante = entity.NumeroComprobante;
                    if (CajaAnterior == true)
                    {
                        //CAJA ANTERIOR
                        ordenPago.TipoComprobanteId = 5;
                    }
                    else
                    {
                        //CAJA ACTUAL
                        ordenPago.TipoComprobanteId = 4;
                        cajaActual.Egresos += Importe;
                        cajaActual.Efectivo -= Importe;
                        cajaActual.Saldo -= Importe;
                    }
                    ordenPago.FechaImputacion = _clock.Now;
                    ordenPago.SubTotal = Importe;
                    ordenPago.ImportePagado = Importe;
                    ordenPago.Concepto = entity.Concepto;
                    ordenPago.Importe = entity.Importe;
                    ordenPago.FechaAlta = _clock.Now;
                    ordenPago.OperadorAltaId = Context.OperadorActual.Id;
                    ordenPago.SucursalAltaId = Context.SucursalActual.Id;
                    ordenPago.SucursalId = Context.SucursalActual.Id;
                    ordenPago.SucursalGastoId = Context.SucursalActual.Id;

                    Uow.OrdenesPagos.Agregar(ordenPago);

                    //ORDEN DE PAGO DETALLE
                    var ordenPagoDetalle = new OrdenPagoDetalle();
                    ordenPagoDetalle.Id = Guid.NewGuid();
                    ordenPagoDetalle.OrdenPagoId = ordenPago.Id;
                    ordenPagoDetalle.FechaPago = _clock.Now;
                    ordenPagoDetalle.ImportePagado = Importe;
                    ordenPagoDetalle.Efectivo = Importe;
                    ordenPagoDetalle.SucursalAltaId = Context.SucursalActual.Id;
                    ordenPagoDetalle.FechaAlta = _clock.Now;
                    ordenPagoDetalle.OperadorAltaId = Context.OperadorActual.Id;

                    ordenPagoDetalle.CajaId = cajaActual.Id;
                    Uow.OrdenesPagosDetalles.Agregar(ordenPagoDetalle);

                    //CAJA MOVIMIENTO
                    var cajaMovimiento = new CajaMovimiento();
                    cajaMovimiento.Id = Guid.NewGuid();
                    cajaMovimiento.CajaId = cajaActual.Id;
                    cajaMovimiento.ComprobanteId = ordenPago.Id;
                    if (CajaAnterior == true)
                    {
                        cajaMovimiento.TipoMovimientoCajaId = 3;
                        cajaMovimiento.TipoComprobante = 5;

                        //Descuento en caja balance
                        var cajaBalance = Uow.CajaBalances.Obtener(c => c.SucursalAltaId == Context.SucursalActual.Id);
                        cajaBalance.Ingresos -= Importe;
                        Uow.CajaBalances.Modificar(cajaBalance);
                    }
                    else
                    {
                        cajaMovimiento.TipoMovimientoCajaId = 2;
                        cajaMovimiento.TipoComprobante = 4;
                    }
                    cajaMovimiento.Importe = Importe;
                    cajaMovimiento.ImpFac = Importe;
                    cajaMovimiento.Efectivo = Importe;
                    cajaMovimiento.PcAlta = System.Environment.MachineName;
                    cajaMovimiento.FechaAlta = _clock.Now;
                    cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id;
                    cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id;
                    Uow.CajaMovimientos.Agregar(cajaMovimiento);

                }

                Uow.Commit();

                if (_formMode == ActionFormMode.Create)
                {
                    OnEntityAgregada(entity);
                }
                this.Close();

            }
        }
Ejemplo n.º 24
0
        private void RegistrarCajaYCajaMovimiento()
        {
            var caja = Uow.Cajas.Listado().Where(c => c.OperadorId == Context.OperadorActual.Id && c.FCierre == null).OrderByDescending(c=>c.FechaAlta ).FirstOrDefault();
            caja.Ingresos = (caja.Ingresos ?? 0) + (_pagoCelular.Vales ?? 0) + (_pagoCelular.Efectivo ?? 0);

            caja.Saldo = (caja.Saldo ?? 0) + (_pagoCelular.Vales ?? 0) + (_pagoCelular.Efectivo ?? 0);
            if (_pagoCelular.Efectivo != null)
                caja.Efectivo += _pagoCelular.Efectivo;
            if (_pagoCelular.Vales !=null)
                caja.Vales += _pagoCelular.Vales;
            caja.FechaModificacion = _clock.Now;
            caja.OperadorModificacionId = Context.OperadorActual.Id;
            caja.SucursalModificacionId = Context.SucursalActual.Id;

            Uow.Cajas.Modificar(caja);

            var cajaMovimiento = new CajaMovimiento();
            cajaMovimiento.Id = Guid.NewGuid();
            cajaMovimiento.CajaId = caja.Id;
            cajaMovimiento.TipoMovimientoCajaId = 1; //Pago de sistema
            cajaMovimiento.TipoComprobante = 2; //Pago de sistema
            cajaMovimiento.ComprobanteId = _pagoCelular.Id; //id del pago Celular
            cajaMovimiento.Senia = _pagoCelular.Senia;
            cajaMovimiento.Importe = _pagoCelular.Monto;
            cajaMovimiento.ImpFac = (_pagoCelular.Efectivo ?? 0) + (_pagoCelular.Vales ?? 0);// ucPagos1.Total; //_pagoCelular.Monto;
            cajaMovimiento.Efectivo = _pagoCelular.Efectivo;
            cajaMovimiento.Vales = _pagoCelular.Vales;
            cajaMovimiento.FechaAlta = _clock.Now;
            cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id;
            cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id;

            Uow.CajaMovimientos.Agregar(cajaMovimiento);
        }
Ejemplo n.º 25
0
        private void CrearEditar()
        {
            var esValido = this.ValidarForm() && ValidarMontos();

            if (!esValido)
            {
                this.DialogResult = DialogResult.None;
            }
            else
            {
                var entity = ObtenerEntityDesdeForm();
                if (_formMode == ActionFormMode.Create)
                {
                    var cajaActual =
                        Uow.Cajas.Obtener(c => c.OperadorAltaId == Context.OperadorActual.Id && c.FCierre == null);

                    var ordenPago = new OrdenPago();
                    ordenPago.Id                = Guid.NewGuid();
                    ordenPago.Fecha             = entity.Fecha;
                    ordenPago.ProveedorId       = entity.ProveedorId;
                    ordenPago.NumeroComprobante = entity.NumeroComprobante;
                    if (CajaAnterior == true)
                    {
                        //CAJA ANTERIOR
                        ordenPago.TipoComprobanteId = 5;
                    }
                    else
                    {
                        //CAJA ACTUAL
                        ordenPago.TipoComprobanteId = 4;
                        cajaActual.Egresos         += Importe;
                        cajaActual.Efectivo        -= Importe;
                        cajaActual.Saldo           -= Importe;
                    }
                    ordenPago.FechaImputacion = _clock.Now;
                    ordenPago.SubTotal        = Importe;
                    ordenPago.ImportePagado   = Importe;
                    ordenPago.Concepto        = entity.Concepto;
                    ordenPago.Importe         = entity.Importe;
                    ordenPago.FechaAlta       = _clock.Now;
                    ordenPago.OperadorAltaId  = Context.OperadorActual.Id;
                    ordenPago.SucursalAltaId  = Context.SucursalActual.Id;
                    ordenPago.SucursalId      = Context.SucursalActual.Id;
                    ordenPago.SucursalGastoId = Context.SucursalActual.Id;

                    Uow.OrdenesPagos.Agregar(ordenPago);

                    //ORDEN DE PAGO DETALLE
                    var ordenPagoDetalle = new OrdenPagoDetalle();
                    ordenPagoDetalle.Id             = Guid.NewGuid();
                    ordenPagoDetalle.OrdenPagoId    = ordenPago.Id;
                    ordenPagoDetalle.FechaPago      = _clock.Now;
                    ordenPagoDetalle.ImportePagado  = Importe;
                    ordenPagoDetalle.Efectivo       = Importe;
                    ordenPagoDetalle.SucursalAltaId = Context.SucursalActual.Id;
                    ordenPagoDetalle.FechaAlta      = _clock.Now;
                    ordenPagoDetalle.OperadorAltaId = Context.OperadorActual.Id;

                    ordenPagoDetalle.CajaId = cajaActual.Id;
                    Uow.OrdenesPagosDetalles.Agregar(ordenPagoDetalle);



                    //CAJA MOVIMIENTO
                    var cajaMovimiento = new CajaMovimiento();
                    cajaMovimiento.Id            = Guid.NewGuid();
                    cajaMovimiento.CajaId        = cajaActual.Id;
                    cajaMovimiento.ComprobanteId = ordenPago.Id;
                    if (CajaAnterior == true)
                    {
                        cajaMovimiento.TipoMovimientoCajaId = 3;
                        cajaMovimiento.TipoComprobante      = 5;

                        //Descuento en caja balance
                        var cajaBalance = Uow.CajaBalances.Obtener(c => c.SucursalAltaId == Context.SucursalActual.Id);
                        cajaBalance.Ingresos -= Importe;
                        Uow.CajaBalances.Modificar(cajaBalance);
                    }
                    else
                    {
                        cajaMovimiento.TipoMovimientoCajaId = 2;
                        cajaMovimiento.TipoComprobante      = 4;
                    }
                    cajaMovimiento.Importe        = Importe;
                    cajaMovimiento.ImpFac         = Importe;
                    cajaMovimiento.Efectivo       = Importe;
                    cajaMovimiento.PcAlta         = System.Environment.MachineName;
                    cajaMovimiento.FechaAlta      = _clock.Now;
                    cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id;
                    cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id;
                    Uow.CajaMovimientos.Agregar(cajaMovimiento);
                }

                Uow.Commit();

                if (_formMode == ActionFormMode.Create)
                {
                    OnEntityAgregada(entity);
                }
                this.Close();
            }
        }
Ejemplo n.º 26
0
        private void BtnGuardar_Click(object sender, EventArgs e)
        {
            if (Monto != UcTotalesSenia.TotalPagar)
            {
                _messageBoxDisplayService.ShowError("Los montos no coinciden");
                return;
            }

            if (this.UcTotalesSenia.Pagos.Count == 0)
            {
                _messageBoxDisplayService.ShowError("Debe agregar una seña.");
                return;
            }

            Guid operadorAutoriza = Guid.Empty;

            if (_formMode == ActionFormMode.Edit)
            {
                //////Autorizacion para sin movimiento
                var operador = this.ObtenerOperadorAdministrador();

                if (operador == null)
                {
                    return;
                }

                if (!this.EsOperadorAdmin)
                {
                    //Guardamos el operador que autorizo la operacion.
                    operadorAutoriza = operador.Id;
                }
            }

            //TODO: Reemplzar el numero cuando se agrege la columna a sucursal.
            int numeroDeSucursal = Context.SucursalActual.SucursalNumero ?? 1;

            ClienteMontoFavor clienteMontoFavor = new ClienteMontoFavor();

            clienteMontoFavor.Id                = Guid.NewGuid();
            clienteMontoFavor.ClienteId         = _cliente.Id;
            clienteMontoFavor.FechaComprobante  = _clock.Now;
            clienteMontoFavor.TipoComprobanteId = TipoComprobanteEnum.SeñaCliente;
            clienteMontoFavor.LCN               = "R" + numeroDeSucursal.ToString().PadLeft(4, '0') + CalcularLCN().PadLeft(8, '0');
            clienteMontoFavor.Concepto          = "Seña " + clienteMontoFavor.LCN;
            clienteMontoFavor.Importe           = UcTotalesSenia.TotalPagar;
            clienteMontoFavor.ImpOcupado        = 0;
            clienteMontoFavor.Observaciones     = TipoComprobanteEnum.SeñaCliente.ToString();
            clienteMontoFavor.FechaAlta         = _clock.Now;
            clienteMontoFavor.OperadorAltaId    = Context.OperadorActual.Id;
            clienteMontoFavor.SucursalAltaId    = Context.SucursalActual.Id;
            if (operadorAutoriza != Guid.Empty)
            {
                clienteMontoFavor.OperadorAutoriza = operadorAutoriza;
            }

            Uow.ClientesMontosFavor.Agregar(clienteMontoFavor);

            //Si el Form=Editar significa que es SinGuardar los movimientos de caja
            if (_formMode == ActionFormMode.Create)
            {
                //ActualizarCaja y CajaMovimiento
                Caja caja = this.Context.CajaActual;
                if (caja.Egresos == null)
                {
                    caja.Egresos = 0;
                }
                caja.Ingresos              += (float?)UcTotalesSenia.TotalPagar;
                caja.Saldo                 += (float?)UcTotalesSenia.TotalPagar;
                caja.FechaModificacion      = _clock.Now;
                caja.SucursalModificacionId = Context.SucursalActual.Id;   //Sucursal del operador
                caja.OperadorModificacionId = (Context.OperadorActual.Id); //Id el operador

                Uow.Cajas.Modificar(caja);

                CajaMovimiento cajaMovimiento = new CajaMovimiento();
                cajaMovimiento.Id     = Guid.NewGuid();
                cajaMovimiento.CajaId = caja.Id;
                cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.SeñaCliente;
                cajaMovimiento.TipoComprobante      = TipoComprobanteEnum.SeñaCliente;
                cajaMovimiento.ComprobanteId        = clienteMontoFavor.Id;
                cajaMovimiento.Importe        = UcTotalesSenia.TotalPagar;
                cajaMovimiento.FechaAlta      = _clock.Now;
                cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id;
                cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id;
                cajaMovimiento.PcAlta         = Environment.MachineName;
                //tipos de pagos
                foreach (VentaPago pago in UcTotalesSenia.Pagos)
                {
                    switch (pago.TipoPago)
                    {
                    case FormaPago.Efectivo:
                        cajaMovimiento.Efectivo = pago.Importe;
                        break;

                    case FormaPago.Tarjeta:
                        var pagoTarjeta = pago as VentaPagoTarjeta;
                        if (cajaMovimiento.Tarjeta == null)
                        {
                            cajaMovimiento.Tarjeta = 0;
                        }

                        cajaMovimiento.Tarjeta += pago.Importe;
                        //GUARDAR TARJETA MOVIMIENTO
                        TarjetasMovimiento tarjetasMovimiento = new TarjetasMovimiento();
                        tarjetasMovimiento.CajaMovimientoId = cajaMovimiento.Id;
                        tarjetasMovimiento.TarjetaId        = pagoTarjeta.TarjetaId ?? 0;
                        tarjetasMovimiento.LoteCupon        = pagoTarjeta.CuponNumero;
                        tarjetasMovimiento.Fecha            = _clock.Now;
                        tarjetasMovimiento.Importe          = (float)pago.Importe;
                        tarjetasMovimiento.Estado           = 1;                           // No se
                        tarjetasMovimiento.FechaAlta        = _clock.Now;
                        tarjetasMovimiento.SucursalAltaId   = Context.SucursalActual.Id;   //Sucursal del operador
                        tarjetasMovimiento.OperadorAltaId   = (Context.OperadorActual.Id); //Id el operador

                        Uow.TarjetasMovimientos.Agregar(tarjetasMovimiento);
                        break;

                    case FormaPago.Cheque:
                        var pagoCheque = pago as VentaPagoCheque;

                        if (cajaMovimiento.Cheque == null)
                        {
                            cajaMovimiento.Cheque = 0;
                        }

                        cajaMovimiento.Cheque += pago.Importe;

                        ChequesTercero chequesTercero = new ChequesTercero();
                        chequesTercero.Id = Guid.NewGuid();
                        chequesTercero.CajaMovimientoId = cajaMovimiento.Id;
                        chequesTercero.BancoId          = pagoCheque.BancoId ?? 0;
                        chequesTercero.NroCheque        = pagoCheque.Numero;
                        chequesTercero.Fecha            = _clock.Now;
                        chequesTercero.FechaCobro       = _clock.Now;
                        chequesTercero.Importe          = (float)pago.Importe;
                        chequesTercero.FechaAlta        = _clock.Now;
                        chequesTercero.SucursalAltaId   = Context.SucursalActual.Id;
                        chequesTercero.OperadorAltaId   = (Context.OperadorActual.Id);

                        Uow.ChequesTerceros.Agregar(chequesTercero);
                        break;

                    case FormaPago.Deposito:
                        var pagoDeposito = pago as VentaPagoDeposito;
                        if (cajaMovimiento.Deposito == null)
                        {
                            cajaMovimiento.Deposito = 0;
                        }

                        //Guardar Cuentas Movimientos
                        cajaMovimiento.Deposito += pago.Importe;

                        CuentasMovimiento cuentasMovimiento = new CuentasMovimiento();
                        cuentasMovimiento.CuentaId                 = pagoDeposito.CuentaId ?? 0;
                        cuentasMovimiento.TipoMovimientoId         = 2; //Deposito
                        cuentasMovimiento.FechaMovimiento          = pagoDeposito.Fecha;
                        cuentasMovimiento.EstadoMovimientoCuentaId = 0;
                        cuentasMovimiento.TipoComprobanteId        = TipoComprobanteEnum.SeñaCliente;
                        cuentasMovimiento.ComprobanteId            = clienteMontoFavor.Id;
                        cuentasMovimiento.MonedaId                 = 0;
                        cuentasMovimiento.CondicionVentaId         = CondicionVentaEnum.Contado;
                        cuentasMovimiento.NroMovimiento            = pagoDeposito.Numero;
                        cuentasMovimiento.Descripcion              = "DEPOSITO NRO " + pagoDeposito.Numero.ToString();
                        cuentasMovimiento.FechaCobro               = _clock.Now;
                        cuentasMovimiento.Debito         = 0;
                        cuentasMovimiento.Credito        = pago.Importe;
                        cuentasMovimiento.TipoCarga      = 2;
                        cuentasMovimiento.CajaId         = caja.Id;
                        cuentasMovimiento.FechaAlta      = _clock.Now;
                        cuentasMovimiento.OperadorAltaId = Context.OperadorActual.Id;
                        cuentasMovimiento.SucursalAltaId = Context.SucursalActual.Id;

                        Uow.CuentasMovimientos.Agregar(cuentasMovimiento);
                        break;
                    }
                }

                Uow.CajaMovimientos.Agregar(cajaMovimiento);
            }

            Uow.Commit();

            _messageBoxDisplayService.ShowSuccess("Seña generada con éxito");

            //Si el Form=Editar significa que es SinGuardar los movimientos de caja
            if (_formMode == ActionFormMode.Create)
            {
                ImprimirComprobante(clienteMontoFavor, UcTotalesSenia.FormasDePagosParaComprobante);
            }

            RefrescarUow();

            RefrescarHistorial();

            Limpiar();
        }
Ejemplo n.º 27
0
        private void Anular(ClienteMontoFavor senia)
        {
            //Utiliar toda la seña
            //if (senia.TipoComprobanteId == TipoComprobanteEnum.SeñaCliente)
            //{
            var operador = this.ObtenerOperadorAdministrador();

            if (operador == null)
            {
                return;
            }

            if (!this.EsOperadorAdmin)
            {
                //Guardamos el operador que autorizo la operacion.
                senia.OperadorAutoriza = operador.Id;
            }

            var diferencia = senia.Importe - senia.ImpOcupado;

            if (diferencia == 0)
            {
                return;
            }


            Uow.ClientesMontosFavor.Modificar(senia);

            var cajaMovimientoAnterior = Uow.CajaMovimientos.Obtener(cm => cm.ComprobanteId == senia.Id);

            if (cajaMovimientoAnterior == null)
            {
                //notas de credito no generan caja movimiento?
            }
            if ((cajaMovimientoAnterior.Tarjeta != null || cajaMovimientoAnterior.Tarjeta == 0) ||
                (cajaMovimientoAnterior.Cheque != null || cajaMovimientoAnterior.Cheque == 0) ||
                (cajaMovimientoAnterior.Deposito != null || cajaMovimientoAnterior.Deposito == 0))
            {
                decimal?devolucion = 0;
                if (diferencia > ((cajaMovimientoAnterior.Tarjeta ?? 0) + (cajaMovimientoAnterior.Cheque ?? 0) + (cajaMovimientoAnterior.Deposito ?? 0) + (cajaMovimientoAnterior.Transferencia ?? 0)))
                {
                    devolucion = diferencia - ((cajaMovimientoAnterior.Tarjeta ?? 0) + (cajaMovimientoAnterior.Cheque ?? 0) + (cajaMovimientoAnterior.Deposito ?? 0) + (cajaMovimientoAnterior.Transferencia ?? 0));

                    //Actualizacion seña
                    using (var crearComprobante = FormFactory.Create <FrmComprobante>())
                    {
                        _messageBoxDisplayService.ShowWarning("Solo se puede devolver un monto en efectivo de: $" + devolucion.Value.ToString("N2"));

                        crearComprobante._concepto = "Actualizacion de seña";
                        crearComprobante._LCN      = senia.LCN;
                        var conv = new Conversion();
                        crearComprobante._montoTexto       = conv.enletras((diferencia - devolucion).ToString());
                        crearComprobante._montoActualizado = (diferencia - devolucion);

                        var formapago = "";
                        if (cajaMovimientoAnterior.Tarjeta > 0)
                        {
                            formapago += "Tarjeta ";
                        }
                        if (cajaMovimientoAnterior.Cheque > 0)
                        {
                            formapago += "Cheque ";
                        }
                        if (cajaMovimientoAnterior.Deposito > 0)
                        {
                            formapago += "Deposito ";
                        }
                        if (cajaMovimientoAnterior.Transferencia > 0)
                        {
                            formapago += "Transferencia ";
                        }

                        crearComprobante._formaPago = formapago + (diferencia - devolucion).ToString();

                        crearComprobante.ShowDialog();
                    }
                    diferencia = devolucion;
                }
                else
                {
                    _messageBoxDisplayService.ShowError("No se puede anular una seña que no fue generada en efectivo");
                    return;
                    //devolucion = diferencia;
                    //anular seña
                }
            }

            senia.ImpOcupado += diferencia; //senia.Importe;
            if (senia.ImpOcupado == senia.Importe)
            {
                senia.FechaAnulacion = _clock.Now;
            }
            senia.FechaModificacion      = _clock.Now;
            senia.OperadorModificacionId = Context.OperadorActual.Id;
            senia.SucursalModificacionId = Context.SucursalActual.Id;


            //generar cajamovimientno
            Caja caja = this.Context.CajaActual;

            if (caja.Ingresos == null)
            {
                caja.Ingresos = 0;
            }
            caja.Egresos += (float?)diferencia;
            if (caja.Saldo == null)
            {
                caja.Saldo = 0;
            }
            caja.Saldo                 -= (float?)diferencia;
            caja.FechaModificacion      = _clock.Now;
            caja.SucursalModificacionId = Context.SucursalActual.Id;
            caja.OperadorModificacionId = (Context.OperadorActual.Id);

            Uow.Cajas.Modificar(caja);

            if (senia.TipoComprobanteId == TipoComprobanteEnum.SeñaCliente)
            {
                //var cajaMovimientoAnterior = Uow.CajaMovimientos.Obtener(cm => cm.ComprobanteId == senia.Id);
                //cajaMovimientoAnterior = Uow.CajaMovimientos.Obtener(cm => cm.ComprobanteId == senia.Id);

                CajaMovimiento cajaMovimiento = new CajaMovimiento();
                cajaMovimiento.Id     = Guid.NewGuid();
                cajaMovimiento.CajaId = caja.Id;
                cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.AnulaciónSeña;
                cajaMovimiento.TipoComprobante      = TipoComprobanteEnum.SeñaCliente;
                cajaMovimiento.ComprobanteId        = senia.Id;
                cajaMovimiento.Senia   = 0;
                cajaMovimiento.Importe = diferencia;

                // cajaMovimiento.Efectivo = cajaMovimientoAnterior.Efectivo;
                cajaMovimiento.Efectivo = diferencia;
                //cajaMovimiento.Tarjeta = cajaMovimientoAnterior.Tarjeta;
                //cajaMovimiento.Cheque = cajaMovimientoAnterior.Cheque;
                //cajaMovimiento.Deposito = cajaMovimientoAnterior.Deposito;
                cajaMovimiento.ImpFac                 = 0;
                cajaMovimiento.PcAlta                 = Environment.MachineName;
                cajaMovimiento.SucursalAltaId         = Context.SucursalActual.Id; //cajaMovimientoAnterior.SucursalAltaId;
                cajaMovimiento.OperadorAltaId         = Context.OperadorActual.Id; //cajaMovimientoAnterior.OperadorAltaId;
                cajaMovimiento.FechaAlta              = _clock.Now;
                cajaMovimiento.SucursalModificacionId = Context.SucursalActual.Id;
                cajaMovimiento.OperadorModificacionId = (Context.OperadorActual.Id);
                cajaMovimiento.FechaModificacion      = _clock.Now;
                Uow.CajaMovimientos.Agregar(cajaMovimiento);
            }
            else if (senia.TipoComprobanteId == TipoComprobanteEnum.NotaCrédito)
            {
                CajaMovimiento cajaMovimiento = new CajaMovimiento();
                cajaMovimiento.Id     = Guid.NewGuid();
                cajaMovimiento.CajaId = caja.Id;
                cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.AnulaciónSeña;
                cajaMovimiento.TipoComprobante      = TipoComprobanteEnum.NotaCrédito;
                cajaMovimiento.ComprobanteId        = senia.Id;
                cajaMovimiento.Senia    = 0;
                cajaMovimiento.Importe  = diferencia;
                cajaMovimiento.Efectivo = diferencia;
                //cajaMovimiento.Tarjeta = cajaMovimientoAnterior.Tarjeta;
                //cajaMovimiento.Cheque = cajaMovimientoAnterior.Cheque;
                //cajaMovimiento.Deposito = cajaMovimientoAnterior.Deposito;
                cajaMovimiento.ImpFac                 = 0;
                cajaMovimiento.PcAlta                 = Environment.MachineName;
                cajaMovimiento.SucursalAltaId         = Context.SucursalActual.Id; //cajaMovimientoAnterior.SucursalAltaId;
                cajaMovimiento.OperadorAltaId         = Context.OperadorActual.Id; //cajaMovimientoAnterior.OperadorAltaId;
                cajaMovimiento.FechaAlta              = _clock.Now;
                cajaMovimiento.SucursalModificacionId = Context.SucursalActual.Id;
                cajaMovimiento.OperadorModificacionId = (Context.OperadorActual.Id);
                cajaMovimiento.FechaModificacion      = _clock.Now;
                Uow.CajaMovimientos.Agregar(cajaMovimiento);
            }
            //Generaregreso??
            Uow.Commit();

            _messageBoxDisplayService.ShowSuccess("Anulación de seña exitosa");

            RefrescarUow();

            RefrescarHistorial();
        }
Ejemplo n.º 28
0
        private void SavePagoBase()
        {
            if (ucListadoPago1.PagosBases.Count == 0)
            {
                MessageBox.Show("Debe ingresar al menos un pago para poder guardar");
                return;
            }

            decimal? Efectivo = 0;
            decimal? Vales = 0;
            decimal? Taller = 0;
            decimal? Descuento = 0;
            decimal? Senia = 0;

            foreach (var item in ucPagos.Pagos)
            {
                if (item.TipoPago == "Efectivo")
                    Efectivo += item.Importe;
                else if (item.TipoPago == "Vales")
                    Vales += item.Importe;
                else if (item.TipoPago == "Taller")
                    Taller += item.Importe;
                else if (item.TipoPago == "Descuento")
                    Descuento += item.Importe;
                else if (item.TipoPago == "A Favor")
                    Senia += item.Importe;
            }

            //actualizo la caja
            var caja = Uow.Cajas.Listado().Where(c => c.OperadorId == Context.OperadorActual.Id && c.FCierre == null).OrderByDescending(c => c.FechaAlta).FirstOrDefault();
            if (caja == null)
                return;
            caja.Ingresos = (caja.Ingresos ?? 0) + (ucPagos.TotalPagos() ?? 0);

            caja.Saldo = (caja.Saldo ?? 0) + (ucPagos.TotalPagos() ?? 0);
            caja.Efectivo += Efectivo;
            caja.Vales += Vales;

            caja.OperadorModificacionId = Context.OperadorActual.Id;
            caja.SucursalModificacionId = Context.SucursalActual.Id;

            Uow.Cajas.Modificar(caja);

            //pagos bases
            var pagosBases = new PagosBas();
            pagosBases.Id = Guid.NewGuid();
            pagosBases.PagoMovil = null; //aca tienen que venir el movil que hace el pago
            pagosBases.FechaAlta = _clock.Now;
            pagosBases.OperadorAltaId = Context.OperadorActual.Id;
            pagosBases.SucursalAltaId = Context.SucursalActual.Id;

            Uow.PagosBases.Agregar(pagosBases);

            //Creo la caja movimiento
            var cajaMovimiento = new CajaMovimiento();
            cajaMovimiento.Id = Guid.NewGuid();
            cajaMovimiento.CajaId = caja.Id;
            cajaMovimiento.TipoMovimientoCajaId = 4;
            cajaMovimiento.TipoComprobante = 6;
            cajaMovimiento.ComprobanteId = pagosBases.Id;
            cajaMovimiento.Importe = ucPagos.Importe;
            cajaMovimiento.Efectivo = Efectivo;
            cajaMovimiento.Vales = Vales;
            //cajaMovimiento.Taller
            //cajaMovimiento.PcAlta=Syst
            cajaMovimiento.FechaAlta = _clock.Now;
            cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id;
            cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id;
            Uow.CajaMovimientos.Agregar(cajaMovimiento);

            for (int i = 0; i < ucListadoPago1.PagosBases.Count; i++)
            {
                //MessageBox.Show(ucListadoPago1.PagosBases[i].Movil.Numero.ToString());

                //PAGO MOVIL
                var pagoMovil = new PagosMovile();
                pagoMovil.Id = Guid.NewGuid();
                pagoMovil.PagoBaseId = pagosBases.Id;
                pagoMovil.Desde = ucListadoPago1.PagosBases[i].Desde;
                pagoMovil.Hasta = ucListadoPago1.PagosBases[i].Hasta;
                pagoMovil.Efectivo = ucListadoPago1.PagosBases[i].SubTotal;
                pagoMovil.Monto = ucListadoPago1.PagosBases[i].Total;
                pagoMovil.MovilId = ucListadoPago1.PagosBases[i].Movil.Id;
                pagoMovil.FechaAlta = _clock.Now;
                pagoMovil.OperadorAltaId = Context.OperadorActual.Id;
                pagoMovil.SucursalAltaId = Context.SucursalActual.Id;
                pagoMovil.Anulada = false;

                Uow.PagosMoviles.Agregar(pagoMovil);

                if (ucListadoPago1.PagosBases[i].Taller > 0)
                {
                    var movil = ucListadoPago1.PagosBases[i].Movil.Id;
                    var talleres = Uow.TalleresMoviles.Listado().Where(t => t.MovilId == movil && t.Acreditado == false).FirstOrDefault();
                    talleres.Acreditado = true;
                    Uow.TalleresMoviles.Modificar(talleres);
                }

            }

            //Monto a Favor al primer  movil
            var montoAfavor  = ucPagos.Pagos.Sum(p => p.Importe) - ucListadoPago1._pagosBases.Sum(t => t.Total);
            if (montoAfavor != 0)
            {
                var movilesMontoFavor = new MovilesMontoFavor();
                movilesMontoFavor.Id = Guid.NewGuid();
                movilesMontoFavor.MovilId = ucListadoPago1.PagosBases[0].Movil.Id;
                movilesMontoFavor.TipoComprobanteId = 7; //Montno a Favor BASE;
                movilesMontoFavor.Concepto = "Monto a favor por pago de base";
                movilesMontoFavor.FechaAlta = _clock.Now;
                movilesMontoFavor.FechaComprobante = _clock.Now;
                movilesMontoFavor.ImpOcupado = 0;
                movilesMontoFavor.Importe = montoAfavor;
                movilesMontoFavor.SucursalAltaId = Context.SucursalActual.Id;
                movilesMontoFavor.OperadorAltaId = Context.OperadorActual.Id;
                Uow.MovilesMontosFavor.Agregar(movilesMontoFavor);
            }
            Uow.Commit();
            MessageBox.Show("Pago de base guardado correctamente");
            //this.Close();
        }
Ejemplo n.º 29
0
        private void RealizarSenia()
        {
            try
            {
                Caja caja = this.Context.CajaActual;

                ProveedorSenia seña = new ProveedorSenia();

                seña.Id                     = Guid.NewGuid();
                seña.ProveedorId            = _proveedor.Id;
                seña.FechaAlta              = _clock.Now;
                seña.FechaModificacion      = _clock.Now;
                seña.Importe                = UcTotalesSeña.TotalPagar;
                seña.ImporteUsado           = 0;
                seña.OperadorAltaId         = Context.OperadorActual.Id;
                seña.SucursalAltaId         = Context.SucursalActual.Id;
                seña.OperadorModificacionId = Context.OperadorActual.Id;
                seña.SucursalModificacionId = Context.SucursalActual.Id;

                decimal?efectivo = 0;
                decimal?tarjeta  = 0;
                decimal?cheque   = 0;
                decimal?deposito = 0;

                foreach (var pago in UcTotalesSeña.Pagos)
                {
                    switch (pago.TipoPago)
                    {
                    case FormaPago.Efectivo:
                        efectivo += pago.Importe;
                        break;

                    case FormaPago.Tarjeta:
                        tarjeta += pago.Importe;
                        break;

                    case FormaPago.Cheque:
                        cheque += pago.Importe;
                        break;

                    case FormaPago.Deposito:
                        deposito += pago.Importe;
                        break;
                    }
                }

                if (efectivo > 0 && ChkCajaAnterior.Checked == false)
                {
                    //creo la caja movimiento para los pagos en efectivo que tocan la caja actual
                    CajaMovimiento cajaMovimiento = new CajaMovimiento();

                    cajaMovimiento.Id                   = Guid.NewGuid();
                    cajaMovimiento.CajaId               = caja.Id;
                    cajaMovimiento.TipoComprobante      = TipoComprobanteEnum.SeñaProveedor;
                    cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.SeñaProveedor;

                    cajaMovimiento.ComprobanteId          = seña.Id;
                    cajaMovimiento.Importe                = efectivo;
                    cajaMovimiento.FechaAlta              = _clock.Now;
                    cajaMovimiento.FechaModificacion      = _clock.Now;
                    cajaMovimiento.PcAlta                 = System.Environment.MachineName;
                    cajaMovimiento.OperadorAltaId         = Context.OperadorActual.Id;
                    cajaMovimiento.SucursalAltaId         = Context.SucursalActual.Id;
                    cajaMovimiento.OperadorModificacionId = Context.OperadorActual.Id;
                    cajaMovimiento.SucursalModificacionId = Context.SucursalActual.Id;

                    //descontar de la caja
                    if (caja.Egresos == null)
                    {
                        caja.Egresos = 0;
                    }

                    if (ChkCajaAnterior.Checked == false)
                    {
                        caja.Egresos += (float?)efectivo;
                    }

                    if (caja.Saldo == null)
                    {
                        caja.Saldo = 0;
                    }

                    caja.Saldo -= (float?)efectivo;

                    caja.FechaModificacion      = _clock.Now;
                    caja.SucursalModificacionId = Context.SucursalActual.Id;   //Sucursal del operador
                    caja.OperadorModificacionId = (Context.OperadorActual.Id); //Id el operador

                    //traer la caja
                    if (cajaMovimiento.Efectivo == null)
                    {
                        cajaMovimiento.Efectivo = 0;
                    }

                    cajaMovimiento.Cheque   = cheque;
                    cajaMovimiento.Tarjeta  = tarjeta;
                    cajaMovimiento.Deposito = deposito;
                    cajaMovimiento.Efectivo = efectivo;
                    efectivo = 0;

                    Uow.CajaMovimientos.Agregar(cajaMovimiento);
                }

                if (tarjeta > 0 || deposito > 0 || cheque > 0 || efectivo > 0)
                {
                    //creo la caja movimiento para los pagos en efectivo que tocan la caja actual
                    CajaMovimiento cajaMovimientoAnterior = new CajaMovimiento();

                    cajaMovimientoAnterior.Id                     = Guid.NewGuid();
                    cajaMovimientoAnterior.CajaId                 = caja.Id;
                    cajaMovimientoAnterior.TipoComprobante        = TipoComprobanteEnum.SeñaProveedor;
                    cajaMovimientoAnterior.TipoMovimientoCajaId   = TipoMovimientoCajaEnum.SeñaProveedorCajaAnterior;
                    cajaMovimientoAnterior.ComprobanteId          = seña.Id;
                    cajaMovimientoAnterior.Importe                = tarjeta + deposito + cheque + efectivo;
                    cajaMovimientoAnterior.FechaAlta              = _clock.Now;
                    cajaMovimientoAnterior.FechaModificacion      = _clock.Now;
                    cajaMovimientoAnterior.PcAlta                 = System.Environment.MachineName;
                    cajaMovimientoAnterior.OperadorAltaId         = Context.OperadorActual.Id;
                    cajaMovimientoAnterior.SucursalAltaId         = Context.SucursalActual.Id;
                    cajaMovimientoAnterior.OperadorModificacionId = Context.OperadorActual.Id;
                    cajaMovimientoAnterior.SucursalModificacionId = Context.SucursalActual.Id;

                    if (efectivo > 0)
                    {
                        if (cajaMovimientoAnterior.Efectivo == null)
                        {
                            cajaMovimientoAnterior.Efectivo = 0;
                        }

                        cajaMovimientoAnterior.Efectivo += efectivo;

                        cajaMovimientoAnterior.Cheque   += cheque;
                        cajaMovimientoAnterior.Tarjeta  += tarjeta;
                        cajaMovimientoAnterior.Deposito += deposito;

                        if (caja.Saldo == null)
                        {
                            caja.Saldo = 0;
                        }
                        caja.Saldo -= (float?)efectivo;
                    }

                    if (tarjeta > 0)
                    {
                        if (cajaMovimientoAnterior.Tarjeta == null)
                        {
                            cajaMovimientoAnterior.Tarjeta = 0;
                        }

                        cajaMovimientoAnterior.Tarjeta += tarjeta;
                    }

                    if (cheque > 0)
                    {
                        if (cajaMovimientoAnterior.Cheque == null)
                        {
                            cajaMovimientoAnterior.Cheque = 0;
                        }

                        cajaMovimientoAnterior.Cheque += cheque;
                    }

                    if (deposito > 0)
                    {
                        if (cajaMovimientoAnterior.Deposito == null)
                        {
                            cajaMovimientoAnterior.Deposito = 0;
                        }

                        cajaMovimientoAnterior.Deposito += deposito;
                    }

                    Uow.CajaMovimientos.Agregar(cajaMovimientoAnterior);
                }


                Uow.Cajas.Modificar(caja);

                Uow.ProveedoresSenias.Agregar(seña);

                Uow.Commit();

                _messageBoxDisplayService.ShowSuccess(Resources.MessageSuccessSeniaExitosa);
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 30
0
        public void CrearSeniaProveedor(ProveedorSenia senia, IList <VentaPago> pagos, Caja caja, Guid operadorId, int sucursalId)
        {
            using (var uow = UowFactory.Create <ILaPazUow>())
            {
                decimal?efectivo             = 0;
                decimal?efectivoCajaAnterior = 0;
                decimal?tarjeta       = 0;
                decimal?cheque        = 0;
                decimal?deposito      = 0;
                decimal?transferencia = 0;

                foreach (var pago in pagos)
                {
                    switch (pago.TipoPago)
                    {
                    case FormaPago.Efectivo:
                        efectivo += pago.Importe;
                        break;

                    case FormaPago.EfectivoCajaAnterior:
                        efectivoCajaAnterior += pago.Importe;
                        break;

                    case FormaPago.Tarjeta:
                        tarjeta += pago.Importe;
                        break;

                    case FormaPago.Cheque:
                        cheque += pago.Importe;
                        break;

                    case FormaPago.Deposito:
                        deposito += pago.Importe;
                        break;

                    case FormaPago.Transferencia:
                        transferencia += pago.Importe;
                        break;
                    }
                }

                if (efectivo > 0)
                {
                    //creo la caja movimiento para los pagos en efectivo que tocan la caja actual
                    CajaMovimiento cajaMovimiento = new CajaMovimiento();

                    cajaMovimiento.Id                   = Guid.NewGuid();
                    cajaMovimiento.CajaId               = caja.Id;
                    cajaMovimiento.TipoComprobante      = TipoComprobanteEnum.SeñaProveedor;
                    cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.SeñaProveedor;

                    cajaMovimiento.ComprobanteId          = senia.Id;
                    cajaMovimiento.Importe                = efectivo;
                    cajaMovimiento.ImpFac                 = efectivo;
                    cajaMovimiento.FechaAlta              = _clock.Now;
                    cajaMovimiento.FechaModificacion      = _clock.Now;
                    cajaMovimiento.PcAlta                 = System.Environment.MachineName;
                    cajaMovimiento.OperadorAltaId         = operadorId;
                    cajaMovimiento.SucursalAltaId         = sucursalId;
                    cajaMovimiento.OperadorModificacionId = operadorId;
                    cajaMovimiento.SucursalModificacionId = sucursalId;

                    //descontar de la caja
                    if (caja.Egresos == null)
                    {
                        caja.Egresos = 0;
                    }

                    caja.Egresos += (float?)efectivo;

                    if (caja.Saldo == null)
                    {
                        caja.Saldo = 0;
                    }

                    caja.Saldo -= (float?)efectivo;

                    caja.FechaModificacion      = _clock.Now;
                    caja.SucursalModificacionId = sucursalId;   //Sucursal del operador
                    caja.OperadorModificacionId = (operadorId); //Id el operador

                    //traer la caja
                    if (cajaMovimiento.Efectivo == null)
                    {
                        cajaMovimiento.Efectivo = 0;
                    }

                    cajaMovimiento.Efectivo = efectivo;

                    uow.CajaMovimientos.Agregar(cajaMovimiento);
                }

                if (tarjeta > 0 || deposito > 0 || cheque > 0 || efectivoCajaAnterior > 0 || transferencia > 0)
                {
                    //creo la caja movimiento para los pagos en efectivo que tocan la caja actual
                    CajaMovimiento cajaMovimientoAnterior = new CajaMovimiento();

                    cajaMovimientoAnterior.Id                     = Guid.NewGuid();
                    cajaMovimientoAnterior.CajaId                 = caja.Id;
                    cajaMovimientoAnterior.TipoComprobante        = TipoComprobanteEnum.SeñaProveedor;
                    cajaMovimientoAnterior.TipoMovimientoCajaId   = TipoMovimientoCajaEnum.SeñaProveedorCajaAnterior;
                    cajaMovimientoAnterior.ComprobanteId          = senia.Id;
                    cajaMovimientoAnterior.Importe                = tarjeta + deposito + cheque + efectivoCajaAnterior + transferencia;
                    cajaMovimientoAnterior.ImpFac                 = tarjeta + deposito + cheque + efectivoCajaAnterior + transferencia;
                    cajaMovimientoAnterior.FechaAlta              = _clock.Now;
                    cajaMovimientoAnterior.FechaModificacion      = _clock.Now;
                    cajaMovimientoAnterior.PcAlta                 = System.Environment.MachineName;
                    cajaMovimientoAnterior.OperadorAltaId         = operadorId;
                    cajaMovimientoAnterior.SucursalAltaId         = sucursalId;
                    cajaMovimientoAnterior.OperadorModificacionId = operadorId;
                    cajaMovimientoAnterior.SucursalModificacionId = sucursalId;

                    if (efectivoCajaAnterior > 0)
                    {
                        if (cajaMovimientoAnterior.Efectivo == null)
                        {
                            cajaMovimientoAnterior.Efectivo = 0;
                        }

                        cajaMovimientoAnterior.Efectivo += efectivoCajaAnterior;

                        if (caja.Saldo == null)
                        {
                            caja.Saldo = 0;
                        }
                        caja.Saldo -= (float?)efectivo;
                    }

                    if (tarjeta > 0)
                    {
                        if (cajaMovimientoAnterior.Tarjeta == null)
                        {
                            cajaMovimientoAnterior.Tarjeta = 0;
                        }

                        cajaMovimientoAnterior.Tarjeta += tarjeta;
                    }

                    if (cheque > 0)
                    {
                        if (cajaMovimientoAnterior.Cheque == null)
                        {
                            cajaMovimientoAnterior.Cheque = 0;
                        }

                        cajaMovimientoAnterior.Cheque += cheque;
                    }

                    if (deposito > 0)
                    {
                        if (cajaMovimientoAnterior.Deposito == null)
                        {
                            cajaMovimientoAnterior.Deposito = 0;
                        }

                        cajaMovimientoAnterior.Deposito += deposito;
                    }

                    if (transferencia > 0)
                    {
                        if (cajaMovimientoAnterior.Transferencia == null)
                        {
                            cajaMovimientoAnterior.Transferencia = 0;
                        }

                        cajaMovimientoAnterior.Transferencia += transferencia;
                    }

                    uow.CajaMovimientos.Agregar(cajaMovimientoAnterior);
                }

                //Guardamos el movimiento del depósito
                foreach (var pago in pagos)
                {
                    switch (pago.TipoPago)
                    {
                    case FormaPago.Cheque:
                        // HACER ALGO
                        break;

                    case FormaPago.Deposito:
                        var pagoDeposito = pago as VentaPagoDeposito;

                        CuentasMovimiento cuentasMovimiento = new CuentasMovimiento();
                        cuentasMovimiento.CuentaId                 = pagoDeposito.CuentaId ?? 0;
                        cuentasMovimiento.TipoMovimientoId         = 1;//Deposito a proveedor
                        cuentasMovimiento.FechaMovimiento          = pagoDeposito.Fecha;
                        cuentasMovimiento.EstadoMovimientoCuentaId = 0;
                        cuentasMovimiento.TipoComprobanteId        = TipoComprobanteEnum.SeñaProveedor;
                        cuentasMovimiento.ComprobanteId            = senia.Id;
                        cuentasMovimiento.MonedaId                 = 0;
                        cuentasMovimiento.NroMovimiento            = pagoDeposito.Numero;
                        cuentasMovimiento.Descripcion              = "DEPOSITO SEÑA NRO " + pagoDeposito.Numero.ToString();
                        cuentasMovimiento.FechaCobro               = _clock.Now;
                        cuentasMovimiento.Debito         = pago.Importe;
                        cuentasMovimiento.Credito        = 0;
                        cuentasMovimiento.TipoCarga      = 1;
                        cuentasMovimiento.CajaId         = caja.Id;
                        cuentasMovimiento.FechaAlta      = _clock.Now;
                        cuentasMovimiento.OperadorAltaId = operadorId;
                        cuentasMovimiento.SucursalAltaId = sucursalId;

                        uow.CuentasMovimientos.Agregar(cuentasMovimiento);
                        break;

                    case FormaPago.Transferencia:
                        var pagoTransferencia = pago as VentaPagoTransferencia;

                        CuentasMovimiento cuentasMovimientoTransferecia = new CuentasMovimiento();
                        cuentasMovimientoTransferecia.CuentaId                 = pagoTransferencia.CuentaId ?? 0;
                        cuentasMovimientoTransferecia.TipoMovimientoId         = 1;//Deposito a proveedor
                        cuentasMovimientoTransferecia.FechaMovimiento          = pagoTransferencia.Fecha;
                        cuentasMovimientoTransferecia.EstadoMovimientoCuentaId = 0;
                        cuentasMovimientoTransferecia.TipoComprobanteId        = TipoComprobanteEnum.SeñaProveedor;
                        cuentasMovimientoTransferecia.ComprobanteId            = senia.Id;
                        cuentasMovimientoTransferecia.MonedaId                 = 0;
                        cuentasMovimientoTransferecia.NroMovimiento            = pagoTransferencia.Numero;
                        cuentasMovimientoTransferecia.Descripcion              = "TRANSFERENCIA SEÑA NRO " + pagoTransferencia.Numero.ToString();
                        cuentasMovimientoTransferecia.FechaCobro               = _clock.Now;
                        cuentasMovimientoTransferecia.Debito         = pago.Importe;
                        cuentasMovimientoTransferecia.Credito        = 0;
                        cuentasMovimientoTransferecia.TipoCarga      = 1;
                        cuentasMovimientoTransferecia.CajaId         = caja.Id;
                        cuentasMovimientoTransferecia.FechaAlta      = _clock.Now;
                        cuentasMovimientoTransferecia.OperadorAltaId = operadorId;
                        cuentasMovimientoTransferecia.SucursalAltaId = sucursalId;

                        uow.CuentasMovimientos.Agregar(cuentasMovimientoTransferecia);
                        break;
                    }
                }

                uow.Cajas.Modificar(caja);

                uow.ProveedoresSenias.Agregar(senia);

                uow.Commit();
            }
        }
Ejemplo n.º 31
0
        private void GenerarClienteMontoFavor()
        {
            //TODO:Agregar el numero de sucursal a la tabla el mismo no coincide con el id.
            int numeroDeSucursal = Context.SucursalActual.SucursalNumero ?? 1;// 1;

            ClienteMontoFavor clienteMontoFavor = new ClienteMontoFavor();

            clienteMontoFavor.Id = Guid.NewGuid();
            _notaCreditoId       = clienteMontoFavor.Id;
            clienteMontoFavor.OperadorAutoriza  = _operadorIdAutoriza;
            clienteMontoFavor.ClienteId         = _venta.ClienteId;
            clienteMontoFavor.FechaComprobante  = _clock.Now;
            clienteMontoFavor.TipoComprobanteId = TipoComprobanteEnum.NotaCrédito;
            clienteMontoFavor.LCN = "R" + numeroDeSucursal.ToString().PadLeft(4, '0') + CalcularLCN().PadLeft(8, '0');
            _lcn = clienteMontoFavor.LCN;
            clienteMontoFavor.Concepto       = "Nota de crédito " + clienteMontoFavor.LCN;
            clienteMontoFavor.Importe        = Total;
            clienteMontoFavor.ImpOcupado     = 0;
            clienteMontoFavor.Observaciones  = TipoComprobanteEnum.NotaCrédito.ToString();
            clienteMontoFavor.FechaAlta      = _clock.Now;
            clienteMontoFavor.OperadorAltaId = Context.OperadorActual.Id;
            clienteMontoFavor.SucursalAltaId = Context.SucursalActual.Id;

            Uow.ClientesMontosFavor.Agregar(clienteMontoFavor);

            foreach (VentaDetalleDevolucion devuleto in Devuletos)
            {
                ClientesMontosFavorDetalle clientesMontosAfavorDetalle = new ClientesMontosFavorDetalle();
                clientesMontosAfavorDetalle.Id = Guid.NewGuid();
                clientesMontosAfavorDetalle.ClientesMontosFavorId = clienteMontoFavor.Id;
                clientesMontosAfavorDetalle.TitulosId             = devuleto.TituloId;
                clientesMontosAfavorDetalle.CantidadPropia        = devuleto.CantidadPropia;
                clientesMontosAfavorDetalle.CantidadConsig        = devuleto.CantidadConsignada;
                clientesMontosAfavorDetalle.FechaAlta             = _clock.Now;
                clientesMontosAfavorDetalle.SucursalAltaId        = Context.SucursalActual.Id;
                clientesMontosAfavorDetalle.OperadorAltaId        = Context.OperadorActual.Id;

                Uow.ClientesMontosFavorDetalles.Agregar(clientesMontosAfavorDetalle);
            }

            var cajaMovimientoAnterior = Uow.CajaMovimientos.Obtener(cm => cm.ComprobanteId == _venta.Id);
            var montoDevolucion        = Total;

            CajaMovimiento cajaMovimiento = new CajaMovimiento();

            cajaMovimiento.Id     = Guid.NewGuid();
            cajaMovimiento.CajaId = this.Context.CajaActual.Id;
            cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.CreditoFavorPorNc;
            cajaMovimiento.TipoComprobante      = TipoComprobanteEnum.NotaCrédito;
            cajaMovimiento.ComprobanteId        = clienteMontoFavor.Id;
            cajaMovimiento.Importe  = Total;
            cajaMovimiento.ImpFac   = Total;
            cajaMovimiento.Efectivo = cajaMovimientoAnterior.Efectivo >= montoDevolucion ? montoDevolucion : cajaMovimientoAnterior.Efectivo;
            montoDevolucion        -= cajaMovimiento.Efectivo;
            if (montoDevolucion > 0)
            {
                cajaMovimiento.Tarjeta = (cajaMovimientoAnterior.Tarjeta >= montoDevolucion) ? montoDevolucion : cajaMovimientoAnterior.Tarjeta;
                montoDevolucion       -= cajaMovimiento.Tarjeta;
            }
            if (montoDevolucion > 0)
            {
                cajaMovimiento.Cheque = (cajaMovimientoAnterior.Cheque >= montoDevolucion ? montoDevolucion : cajaMovimientoAnterior.Cheque);
                montoDevolucion      -= cajaMovimiento.Cheque;
            }
            if (montoDevolucion > 0)
            {
                cajaMovimiento.Deposito = (cajaMovimientoAnterior.Deposito >= montoDevolucion ? montoDevolucion : cajaMovimientoAnterior.Deposito);
                montoDevolucion        -= cajaMovimiento.Deposito;
            }
            if (montoDevolucion > 0)
            {
                cajaMovimiento.Transferencia = (cajaMovimientoAnterior.Transferencia >= montoDevolucion ? montoDevolucion : cajaMovimientoAnterior.Transferencia);
                montoDevolucion -= cajaMovimiento.Transferencia;
            }
            cajaMovimiento.FechaAlta      = _clock.Now;
            cajaMovimiento.OperadorAltaId = Context.OperadorActual.Id;
            cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id;

            Uow.CajaMovimientos.Agregar(cajaMovimiento);
        }
Ejemplo n.º 32
0
        private void Anular(ClienteMontoFavor senia)
        {
            //Utiliar toda la seña
            if (senia.TipoComprobanteId == TipoComprobanteEnum.SeñaCliente)
            {
                var diferencia = senia.Importe - senia.ImpOcupado;
                if (diferencia == 0)
                {
                    return;
                }

                senia.ImpOcupado             = senia.Importe;
                senia.FechaAnulacion         = _clock.Now;
                senia.FechaModificacion      = _clock.Now;
                senia.OperadorModificacionId = Context.OperadorActual.Id;
                senia.SucursalModificacionId = Context.SucursalActual.Id;

                Uow.ClientesMontosFavor.Modificar(senia);
                //generar cajamovimientno
                Caja caja = this.Context.CajaActual;
                if (caja.Ingresos == null)
                {
                    caja.Ingresos = 0;
                }
                caja.Egresos += (float?)diferencia;
                if (caja.Saldo == null)
                {
                    caja.Saldo = 0;
                }
                caja.Saldo                 -= (float?)diferencia;
                caja.FechaModificacion      = _clock.Now;
                caja.SucursalModificacionId = Context.SucursalActual.Id;   //Sucursal del operador
                caja.OperadorModificacionId = (Context.OperadorActual.Id); //Id el operador

                Uow.Cajas.Modificar(caja);

                CajaMovimiento cajaMovimiento = new CajaMovimiento();
                cajaMovimiento.Id     = Guid.NewGuid();
                cajaMovimiento.CajaId = caja.Id;
                cajaMovimiento.TipoMovimientoCajaId = TipoMovimientoCajaEnum.AnulaciónSeña;
                cajaMovimiento.TipoComprobante      = TipoComprobanteEnum.SeñaCliente;
                cajaMovimiento.ComprobanteId        = senia.Id;
                cajaMovimiento.Senia          = 0;
                cajaMovimiento.Importe        = diferencia;
                cajaMovimiento.ImpFac         = 0;
                cajaMovimiento.PcAlta         = Environment.MachineName;
                cajaMovimiento.SucursalAltaId = Context.SucursalActual.Id;   //Sucursal del operador
                cajaMovimiento.OperadorAltaId = (Context.OperadorActual.Id); //Id el operador
                cajaMovimiento.FechaAlta      = _clock.Now;
                Uow.CajaMovimientos.Agregar(cajaMovimiento);

                //Generaregreso??
                Uow.Commit();
                _messageBoxDisplayService.ShowSuccess("Anulación de seña exitosa");

                BuscarHistorial();
            }
            else
            {
                _messageBoxDisplayService.ShowError("No puede anular una nota de crédito");
            }
        }