Ejemplo n.º 1
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.º 2
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();
        }