コード例 #1
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);
        }
コード例 #2
0
        private void AgregarCuentaMovimiento(DetalleFormaPago pago)
        {
            var movimiento = new CuentasMovimiento();

            movimiento.ComprobanteId = _ordenPago.Id;

            switch (pago.TipoPago)
            {
            case FormaPago.Transferencia:
                var pagoTrans = pago as PagoTransferencia;
                movimiento.Debito            = pagoTrans.Importe;
                movimiento.NroMovimiento     = pagoTrans.Numero;
                movimiento.CuentaId          = (int)pagoTrans.CuentaId;
                movimiento.FechaMovimiento   = _clock.Now;
                movimiento.Descripcion       = pagoTrans.Descripcion;
                movimiento.TipoComprobanteId = TipoComprobanteEnum.OrdenPago;
                movimiento.TipoMovimientoId  = (int)TipoMovimientoBancarioEnum.TransferenciaBancariaOrdenPago;
                break;

            case FormaPago.Deposito:
                var pagoDeposito = pago as PagoDeposito;
                movimiento.Debito            = pagoDeposito.Importe;
                movimiento.NroMovimiento     = pagoDeposito.Numero;
                movimiento.CuentaId          = (int)pagoDeposito.DepositoCuentaId;
                movimiento.FechaMovimiento   = _clock.Now;
                movimiento.Descripcion       = pagoDeposito.Descripcion;
                movimiento.TipoComprobanteId = TipoComprobanteEnum.OrdenPago;
                movimiento.TipoMovimientoId  = (int)TipoMovimientoBancarioEnum.DepositoEfectivo;
                break;
            }

            Caja caja = this.Context.CajaActual;

            movimiento.CajaId         = caja.Id;
            movimiento.FechaAlta      = _clock.Now;
            movimiento.SucursalAltaId = Context.SucursalActual.Id;
            movimiento.OperadorAltaId = Context.OperadorActual.Id;

            Uow.CuentasMovimientos.Agregar(movimiento);
        }
コード例 #3
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();
        }
コード例 #4
0
ファイル: ProveedorNegocio.cs プロジェクト: windygu/Libreria
        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();
            }
        }