Beispiel #1
0
        private static void CurrentDomainOnUnhandledException(object sender, UnhandledExceptionEventArgs unhandledExceptionEventArgs)
        {
            var mensaje = GetGlobalExeptionMessage((Exception)unhandledExceptionEventArgs.ExceptionObject);

            MessageBoxDisplayService.ShowError(mensaje);
            Application.Exit();
        }
Beispiel #2
0
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            var esValido = this.ValidateControls();

            if (!esValido)
            {
                this.DialogResult = DialogResult.None;
            }
            else
            {
                var stockEntryModel = GetStockEntry();
                var stockEntry      = stockEntryModel.ToStockEntry();

                using (var service = _serviceFactory.Create <IStockEntryService>())
                {
                    try
                    {
                        service.Create(stockEntry, ucDepositSelection.SelectedDeposit.Id, Guid.Parse(ddlProducts.SelectedValue.ToString()));
                        _messageBoxDisplayService.ShowInfo("El stock se agregó correctamente.");
                        ResetControls();
                    }
                    catch (Exception)
                    {
                        _messageBoxDisplayService.ShowError("El stock no se agregó correctamente.");
                    }
                }
            }
        }
Beispiel #3
0
 private void BtnGuardar_Click(object sender, EventArgs e)
 {
     if (this.UcTotalesSeña.Pagos.Count == 0)
     {
         _messageBoxDisplayService.ShowError("Debe agregar una seña.");
         return;
     }
     RealizarSenia();
 }
Beispiel #4
0
        private void BtnPresupuestar_Click(object sender, EventArgs e)
        {
            if (_cliente == null)
            {
                _messageBoxDisplayService.ShowError(Resources.ErrorMessageSeleccionarCliente);
                return;
            }

            if (!UcTitulosVenta.Titulos.Any())
            {
                _messageBoxDisplayService.ShowError(Resources.ErrorMessageVentaSinLibros);
                return;
            }


            RealizarPresupuesto();

            OnPresupuestoRealizado();
        }
Beispiel #5
0
        private void BtnGuardar_Click(object sender, EventArgs e)
        {
            if (Monto != UcTotalesSenia.TotalPagar)
            {
                _messageBoxDisplayService.ShowError("Los montos no coiniden");
                return;
            }

            int sucursal = 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" + sucursal.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    = 2;

            Uow.ClientesMontosFavor.Agregar(clienteMontoFavor);

            Uow.Commit();

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

            var crearSenia = FormFactory.Create <FrmComprobante>();

            crearSenia._concepto = "Seña de Cliente";
            crearSenia._LCN      = clienteMontoFavor.LCN;
            var conv = new Conversion();

            crearSenia._montoTexto = conv.enletras(UcTotalesSenia.TotalPagar.ToString());
            //crearSenia._montoTexto = "cien";
            //crearSenia.Show();

            BuscarHistorial();
            Limpiar();
        }
Beispiel #6
0
        private bool Validar()
        {
            int vendida;
            int devuelta;

            var vendidaParse  = int.TryParse(TxtCntVendida.Text, out vendida);
            var devueltaParse = int.TryParse(TxtCntDevuelta.Text, out devuelta);

            if ((remitoDetalle.Cantidad - remitoDetalle.CntDevuelta - remitoDetalle.CntVendida) < (vendida + devuelta))
            {
                _messageBoxDisplayService.ShowError(Resources.ErrorMessageDifferentCuantity);
                return(false);
            }

            return(true);
        }
        private void btnFinishOrder_Click(object sender, EventArgs e)
        {
            if (ucEggsAmount.TotalDozens != Order.Dozens)
            {
                _messageBoxDisplayService.ShowError("El total de docenas debe ser igual al solicitado en el pedido");
                return;
            }

            _messageBoxDisplayService.ShowConfirmationDialog("Esta seguro que desea finalizar el armado este pedido?", "Finalizar Pedido",
                                                             () =>
            {
                using (var service = _serviceFactory.Create <IOrderService>())
                {
                    service.FinishOrder(Order.Id, ucEggsAmount.Boxes, ucEggsAmount.Mapples, ucEggsAmount.Eggs);

                    TransitionManager.LoadOrdersManagerView();
                }
            });
        }
Beispiel #8
0
        private void UcBuscadorFacturaOnBuscarFinished(object sender, List <VentaDetalleDto> ventaDetalles)
        {
            if (ventaDetalles != null)
            {
                _ventaDetalleDto = ventaDetalles;
                var ventaId = ventaDetalles.First().VentaId;
                _venta = Uow.Ventas.Obtener(v => v.Id == ventaId, v => v.Cliente);

                ActualizarDetalleFactura(ventaDetalles);
                Devuletos.Clear();
                GrillaDevueltos.DataSource = Devuletos;
                Total = 0;
                CargarDatosFactura();
            }
            else
            {
                Limpiar();
                _messageBoxDisplayService.ShowError("No se encontró factura con ese número");
            }
        }
        private void BtnAgregar_Click(object sender, EventArgs e)
        {
            using (var formAgregarPago = FormFactory.Create <FrmAgregarPago>())
            {
                formAgregarPago.Importe       = ImporteDebe;
                formAgregarPago.PagoAgregado += (o, pago) =>
                {
                    _pagos.Add(pago);
                    ActualizarPagoEfectivoFijo();
                    if (Importe < TotalPagos() || PagoFijoEfectivo < 0)
                    {
                        _pagos.Remove(pago);
                        _IMessageBoxDisplayService.ShowError("La suma de los pagos no debe superar el importe total de la orden de pago.");
                    }

                    RefrescarPagos();

                    formAgregarPago.Close();
                };

                formAgregarPago.ShowDialog();
            }
        }
        private void BtnRendirConsignacion_Click(object sender, EventArgs e)
        {
            if (UcTitulosConsignacionVenta.Titulos.Sum(t => t.CntARendir) == 0 && UcTitulosConsignacionVenta.Titulos.Sum(t => t.CntADevolver) == 0)
            {
                _messageBoxDisplayService.ShowError("Debe seleccionar libros a facturar");
                return;
            }

            if (_cliente == null)
            {
                _messageBoxDisplayService.ShowError(Resources.ErrorMessageSeleccionarCliente);
                return;
            }

            if (!UcTitulosConsignacionVenta.Titulos.Any())
            {
                _messageBoxDisplayService.ShowError(Resources.ErrorMessageVentaSinLibros);
                return;
            }

            if (!UcTotalesVenta.Validar())
            {
                return;
            }

            if (UcBuscadorConsignacion.CondicionVentaSeleccionada == CondicionVentaEnum.CuentaCorriente &&
                UcTotalesVenta.SubTotal.HasValue &&
                UcTotalesVenta.SubTotal.Value > 0 &&
                UcTotalesVenta.SubTotal.Value <= UcTotalesVenta.Descuento.GetValueOrDefault())
            {
                _messageBoxDisplayService.ShowError("El descuento no puede superar al importe total de la venta");
                return;
            }

            if (UcBuscadorConsignacion.CondicionVentaSeleccionada == CondicionVentaEnum.CuentaCorriente &&
                UcCuentaCorrienteInfo.Cuotas == null)
            {
                _messageBoxDisplayService.ShowError("Debe indicar la cantidad de cuotas del plan");
                return;
            }

            if (UcTitulosConsignacionVenta.Titulos.Count > Context.SucursalActual.MaximoNroLineasPorVenta)
            {
                _messageBoxDisplayService.ShowError("Se ha superado el límite máximo de líneas por venta.");
                return;
            }


            //Ahora calculo el porcentaje de descuento para ver si no supera el maximo permitido
            //var porcentaje = (UcTotalesVenta.Descuento.GetValueOrDefault() * 100) / UcTotalesVenta.SubTotal.Value;
            var porcentaje             = UcTotalesVenta.Descuento.GetValueOrDefault();
            var porcentajeNoAutorizado = porcentaje > Context.SucursalActual.MaximoPorcentajeDescuento;

            var importeNoAutorizado = UcTotalesVenta.SubTotal.Value >= Context.SucursalActual.MaximoImporteVenta;

            if (UcBuscadorConsignacion.CondicionVentaSeleccionada == CondicionVentaEnum.Contado)
            {
                importeNoAutorizado = false;
            }


            if (porcentajeNoAutorizado || importeNoAutorizado)
            {
                using (var login = FormFactory.Create <FrmLogin>())
                {
                    login.RolesAceptados = new List <string>()
                    {
                        "Admin", "SuperAdmin"
                    };
                    login.CambiarIdentity = false;
                    if (login.ShowDialog() != DialogResult.OK)
                    {
                        //_messageBoxDisplayService.ShowError(Resources.ErrorMessageVentaSinLibros);
                        return;
                    }
                }
            }

            //Vuelto
            if (ChkVuelto.IsChecked)
            {
                decimal?efectivo = 0;
                foreach (VentaPago pago in this.UcTotalesVenta.Pagos)
                {
                    if (pago.TipoPago == FormaPago.Efectivo)
                    {
                        efectivo = pago.Importe;
                    }
                }

                using (var frmVuelto = new FrmVuelto())
                {
                    frmVuelto.APagar = efectivo;
                    frmVuelto.Paga   = efectivo;
                    frmVuelto.ShowDialog();
                }
            }

            RealizarVenta();
        }
Beispiel #11
0
        private void BtnIngresar_Click(object sender, EventArgs e)
        {
            var clearTextPassword = TxtPassword.Text;
            var username          = CbxUsuario.Usuario;

            this.FormErrorProvider.Clear();

            if (string.IsNullOrEmpty(username))
            {
                this.FormErrorProvider.SetError(CbxUsuario, "Debe ingresar un usuario");
                this.DialogResult = DialogResult.None;
                return;
            }

            if (string.IsNullOrEmpty(clearTextPassword))
            {
                this.FormErrorProvider.SetError(TxtPassword, "Debe ingresar una clave");
                this.DialogResult = DialogResult.None;
                return;
            }

            if (UcSucursales.Sucursal == null)
            {
                this.FormErrorProvider.SetError(UcSucursales, "Debe seleccionar una sucursal");
                this.DialogResult = DialogResult.None;
                return;
            }

            try
            {
                //Validate credentials through the authentication service
                Operador user     = _authenticationService.AuthenticateUser(username, clearTextPassword);
                Sucursal sucursal = UcSucursales.Sucursal;

                //Get the current principal object
                GestionAdministrativaPrincipal laPazPrincipal = Thread.CurrentPrincipal as GestionAdministrativaPrincipal;
                if (laPazPrincipal == null)
                {
                    throw new ArgumentException("The application's default thread principal must be set to a CustomPrincipal object on startup.");
                }


                var sucursalValida = user.OperadoresSucursales.Any(s => s.SucursalId == sucursal.Id);
                if (!sucursalValida)
                {
                    this.FormErrorProvider.SetError(UcSucursales, "No esta habilitado para ingresar con esta sucursal");
                    this.DialogResult = DialogResult.None;
                    return;
                }

                if (RolesAceptados != null && RolesAceptados.Any())
                {
                    if (!(user.Roles.Select(r => r.Description).Any(r => RolesAceptados.Any(ra => ra == r))))
                    {
                        _messageBoxDisplayService.ShowError(Resources.ErrorMessageRolesRequeridos);
                        this.DialogResult = DialogResult.None;
                        return;
                    }
                }

                if (CambiarIdentity)
                {
                    //Authenticate the user
                    laPazPrincipal.Identity = new GestionAdministrativaIdentity(user, sucursal);
                }

                UltimoOperadorIngresado = user;
            }
            catch (UnauthorizedAccessException)
            {
                _messageBoxDisplayService.ShowError("La credenciales ingresadas no son correctas");
                this.DialogResult = DialogResult.None;
            }
        }
        private void BtnFacturar_Click(object sender, EventArgs e)
        {
            if (_cliente == null)
            {
                _messageBoxDisplayService.ShowError(Resources.ErrorMessageSeleccionarCliente);
                return;
            }

            if (!UcTitulosVenta.Titulos.Any())
            {
                _messageBoxDisplayService.ShowError(Resources.ErrorMessageVentaSinLibros);
                return;
            }

            if (!UcTotalesVenta.Validar())
            {
                return;
            }

            if (UcBuscadorCliente.CondicionVentaSeleccionada == CondicionVentaEnum.CuentaCorriente &&
                UcTotalesVenta.SubTotal.Value <= UcTotalesVenta.Descuento.GetValueOrDefault())
            {
                _messageBoxDisplayService.ShowError("El descuento no puede superar al importe total de la venta");
                return;
            }

            if (UcBuscadorCliente.CondicionVentaSeleccionada == CondicionVentaEnum.CuentaCorriente &&
                UcCuentaCorrienteInfo.Cuotas == null)
            {
                _messageBoxDisplayService.ShowError("Debe indicar la cantidad de cuotas del plan");
                return;
            }

            if (UcTitulosVenta.Titulos.Count > Context.SucursalActual.MaximoNroLineasPorVenta)
            {
                _messageBoxDisplayService.ShowError("Se ha superado el límite máximo de líneas por venta.");
                return;
            }

            //Ahora calculo el porcentaje de descuento para ver si no supera el maximo permitido
            //var porcentaje = (UcTotalesVenta.Descuento.GetValueOrDefault() * 100) / UcTotalesVenta.SubTotal.Value;
            var porcentaje             = UcTotalesVenta.Descuento.GetValueOrDefault();
            var porcentajeNoAutorizado = porcentaje > Context.SucursalActual.MaximoPorcentajeDescuento;

            var importeNoAutorizado = UcTotalesVenta.SubTotal.Value >= Context.SucursalActual.MaximoImporteVenta;

            if (UcBuscadorCliente.CondicionVentaSeleccionada == CondicionVentaEnum.Contado)
            {
                importeNoAutorizado = false;
            }


            if (porcentajeNoAutorizado || importeNoAutorizado)
            {
                var operador = this.ObtenerOperadorAdministrador();
                if (operador == null)
                {
                    return;
                }
            }

            //Vuelto
            if (ChkVuelto.IsChecked && UcTotalesVenta.HayPagoEnEfectivo)
            {
                using (var frmVuelto = new FrmVuelto())
                {
                    frmVuelto.APagar = UcTotalesVenta.TotalEnEfectivo;
                    frmVuelto.Paga   = UcTotalesVenta.TotalEnEfectivo;
                    frmVuelto.ShowDialog();
                }
            }

            RealizarVenta();
        }
Beispiel #13
0
        private void BtnSeleccionar_Click(object sender, EventArgs e)
        {
            //controlo que tenga algun ìtem seleccionado de la grilla
            var selectedRow = this.GridTitulos.SelectedRows.FirstOrDefault();

            if (selectedRow == null)
            {
                return;
            }

            //validacion cachorra. despues mejorar con los dto y toda la gilada
            decimal pVenta;

            if (TxtPrecioVenta.Text != "")
            {
                pVenta = Convert.ToDecimal(TxtPrecioVenta.Text);
            }
            else
            {
                pVenta = 0;
            }

            decimal pCompra;

            if (TxtPrecioCompra.Text != "")
            {
                pCompra = Convert.ToDecimal(TxtPrecioCompra.Text);
            }
            else
            {
                pCompra = 0;
            }

            if (pVenta < pCompra)
            {
                _messageBoxDisplayService.ShowError("El precio de venta no puede ser menor al precio de compra.");
                return;
            }

            //controlo que el titulo ya lo tenga el proveedor/si no lo tiene, agrego el titulo al proveedor
            var proveedorActual = Uow.Proveedores.Obtener(p => p.Id == _proveedorId);
            var codigoProveedor = proveedorActual.Cuenta;

            var tituloActual = Uow.Titulos.Obtener(t => t.Id == Id);
            var nuevoCod     = codigoProveedor.ToString().PadLeft(4, '0').Substring(0, 4) + tituloActual.Cod.Substring(4);

            var tituloCheck = Uow.Titulos.Obtener(t => t.Cod == nuevoCod);

            if (tituloCheck == null)
            {
                var tituloProv = Uow.Titulos.Obtener(t => t.Id == Id);
                var libroNew   = new Titulo();
                libroNew.Id                     = Guid.NewGuid();
                _idLibro                        = libroNew.Id;
                _codLibro                       = nuevoCod;
                libroNew.Cod                    = nuevoCod;
                libroNew.ISBN                   = tituloProv.ISBN;
                libroNew.NombreTitulo           = tituloProv.NombreTitulo;
                libroNew.ProveedorId            = _proveedorId;
                libroNew.AutorId                = tituloProv.AutorId;
                libroNew.EditorialId            = tituloProv.EditorialId;
                libroNew.TemaId                 = tituloProv.TemaId;
                libroNew.SubtemaId              = tituloProv.SubtemaId;
                libroNew.PrecioVentaTitulo      = PrecioVenta;
                libroNew.PrecioCompraTitulo     = PrecioBase;
                libroNew.CodigoBarra            = tituloProv.CodigoBarra;
                libroNew.ISBNg                  = tituloProv.ISBNg;
                libroNew.FechaAltaTitulo        = tituloProv.FechaAltaTitulo;
                libroNew.TipoArticuloId         = tituloProv.TipoArticuloId;
                libroNew.ModoStockId            = tituloProv.ModoStockId;
                libroNew.TipoTituloId           = tituloProv.TipoTituloId;
                libroNew.UnidadesId             = tituloProv.UnidadesId;
                libroNew.TomosTitulosId         = tituloProv.TomosTitulosId;
                libroNew.EstadoTituloId         = tituloProv.EstadoTituloId;
                libroNew.AdicionalId            = tituloProv.AdicionalId;
                libroNew.PesoTitulo             = tituloProv.PesoTitulo;
                libroNew.PaisId                 = tituloProv.PaisId;
                libroNew.FechaEdicion           = tituloProv.FechaEdicion;
                libroNew.IdiomaId               = tituloProv.IdiomaId;
                libroNew.PartesId               = tituloProv.PartesId;
                libroNew.Paginas                = tituloProv.Paginas;
                libroNew.Encuad                 = tituloProv.Encuad;
                libroNew.Comentario             = tituloProv.Comentario;
                libroNew.StkMin                 = tituloProv.StkMin;
                libroNew.FUltVta                = tituloProv.FUltVta;
                libroNew.Fingreso               = _clock.Now;
                libroNew.nControl               = tituloProv.nControl;
                libroNew.UbicacionId            = null;
                libroNew.PresentacionId         = tituloProv.PresentacionId;
                libroNew.FechaAlta              = _clock.Now;
                libroNew.SucursalAltaId         = Context.SucursalActual.Id;
                libroNew.OperadorAltaId         = Context.OperadorActual.Id;
                libroNew.FechaModificacion      = _clock.Now;
                libroNew.SucursalModificacionId = Context.SucursalActual.Id;
                libroNew.OperadorModificacionId = Context.OperadorActual.Id;
                libroNew.Activo                 = true;
                Uow.Titulos.Agregar(libroNew);

                var tituloStockNew = new TituloStock();
                tituloStockNew.TituloId               = libroNew.Id;
                tituloStockNew.SucursalId             = Context.SucursalActual.Id;
                tituloStockNew.StkCn                  = 0;
                tituloStockNew.StkPr                  = 0;
                tituloStockNew.FechaAlta              = _clock.Now;
                tituloStockNew.SucursalAltaId         = Context.SucursalActual.Id;
                tituloStockNew.OperadorAltaId         = Context.OperadorActual.Id;
                tituloStockNew.FechaModificacion      = _clock.Now;
                tituloStockNew.SucursalModificacionId = Context.SucursalActual.Id;
                tituloStockNew.OperadorModificacionId = Context.OperadorActual.Id;
                Uow.TitulosStock.Agregar(tituloStockNew);
                Uow.Commit();
            }
            else
            {
                _idLibro  = tituloCheck.Id;
                _codLibro = tituloCheck.Cod;
            }

            //mandar libro
            CompraTitulo titulo = ObtenerTitulo();

            //Validar cambios de precios
            if (TitulosValidator.SolicitarAutorizacionPorCambioDePrecios(titulo.MapToTitulo()))
            {
                var operador = this.ObtenerOperadorAdministrador();

                if (operador == null)
                {
                    return;
                }
            }

            var esValido = this.ValidarForm();

            if ((esValido))
            {
                OnTituloAgregado(titulo);

                //modifico el precio de toodos los proveedores
                ActualizarPrecioTitulo(titulo);
            }
            else
            {
                this.DialogResult = DialogResult.None;
            }
        }
Beispiel #14
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();
        }
Beispiel #15
0
        private void RealizarConsignacion()
        {
            _consignacion.Id = Guid.NewGuid();

            switch (_formMode)
            {
            case ActionFormMode.Create:
                _consignacion.NumeroComprobante = _consignacionNegocio.SiguienteNroConsignacion(Context.SucursalActual.Id).ToString();
                break;

            case ActionFormMode.Edit:
                TxtNroConsignacion.Text = _consignacion.NumeroComprobante;
                break;
            }

            _consignacion.LCN = "";

            _consignacion.ClienteId = _cliente.Id;

            _consignacion.PuntoVenta       = 1;//; "no encuentro, pero no es igual a sucursal"
            _consignacion.FechaComprobante = _clock.Now;
            _consignacion.FechaVencimiento = DtpFechaVencimiento.Value;
            _consignacion.ImporteNeto      = ucTitulosVenta.Titulos.Sum(x => x.PrecioVenta);
            _consignacion.ImporteIVA       = IvaHelper.CalcularIva(_consignacion.ImporteNeto.Value);
            _consignacion.FechaEmision     = _clock.Now;
            BtnRecargarNroFactura_Click(null, null);
            _consignacion.NumeroComprobante = TxtNroConsignacion.Text;
            _consignacion.LCN             = LcnHelper.ObtenerLcn(_consignacion.NumeroComprobante, Context.SucursalActual.SucursalNumero ?? 1, "X");
            _consignacion.Concepto        = "CONSIGNACION PARA CLIENTES";
            _consignacion.TipoComprobante = (int)Entidades.Enums.TipoComprobanteEnum.RemitosConsignacCliente;
            _consignacion.Observaciones   = TxtObservacion.Text;
            _consignacion.FechaAlta       = _clock.Now;
            _consignacion.SucursalAltaId  = Context.SucursalActual.Id; //Sucursal del operador
            _consignacion.OperadorAltaId  = Context.OperadorActual.Id; //Id el operador

            Uow.RemitosVentas.Agregar(_consignacion);


            //CONSIGNACION DETALLE
            foreach (var titulo in ucTitulosVenta.Titulos)
            {
                //Descontar stock
                var tituloStock =
                    Uow.TitulosStock.Obtener(ts => ts.TituloId == titulo.TituloId && ts.SucursalId == Context.SucursalActual.Id);
                var cantidadAVender = titulo.Cantidad;
                int?cantpropia      = 0;
                int?cantconsiganda  = 0;

                if (tituloStock.StkPr > 0)
                {
                    if (tituloStock.StkPr >= cantidadAVender)
                    {
                        tituloStock.StkPr -= cantidadAVender;
                        cantpropia         = cantidadAVender;
                        cantidadAVender    = 0;
                    }
                    else
                    {
                        cantpropia        = tituloStock.StkPr;
                        cantidadAVender  -= tituloStock.StkPr;
                        tituloStock.StkPr = 0;
                    }
                }

                if (cantidadAVender > 0 && tituloStock.StkCn > 0)
                {
                    if (tituloStock.StkCn >= cantidadAVender)
                    {
                        tituloStock.StkCn -= cantidadAVender;
                        cantconsiganda     = cantidadAVender;
                    }
                    else
                    {
                        _messageBoxDisplayService.ShowError("No hay suficiente stock para completar la consignación");
                        return;
                        //Deberia cancelar la venta completa
                    }
                }

                Uow.TitulosStock.Modificar(tituloStock);

                RemitosVentaDetalle remitoDetalle = new RemitosVentaDetalle();
                remitoDetalle.Id             = Guid.NewGuid();
                remitoDetalle.RemitoVentaId  = _consignacion.Id;
                remitoDetalle.TituloId       = titulo.TituloId;
                remitoDetalle.CntPr          = cantpropia;
                remitoDetalle.CntCn          = cantconsiganda;
                remitoDetalle.PrecioVenta    = titulo.PrecioVenta;
                remitoDetalle.PrecioBase     = titulo.PrecioBase;
                remitoDetalle.Descuento      = titulo.Descuento;
                remitoDetalle.FechaAlta      = _clock.Now;
                remitoDetalle.SucursalAltaId = Context.SucursalActual.Id;   //Sucursal del operador
                remitoDetalle.OperadorAltaId = (Context.OperadorActual.Id); //Id el operador

                Uow.RemitosVentasDetalle.Agregar(remitoDetalle);
            }

            Uow.Commit();

            _messageBoxDisplayService.ShowSuccess(Resources.MessageSuccessConsignacionExitosa);

            using (var crearConsignacion = FormFactory.Create <FrmComprobanteConsignacion>(_consignacion.Id))
            {
                crearConsignacion._descripcion = _consignacion.Concepto;
                crearConsignacion._formaPago   = "CONSIGNACION";
                crearConsignacion._recargo     = "";

                crearConsignacion.ShowDialog();
            }

            var pageTab = this.Parent as RadPageViewPage;

            if (pageTab != null)
            {
                pageTab.Dispose();
            }
            ;
        }
        private void BtnGuardar_Click(object sender, EventArgs e)
        {
            if (Monto != ucTotalesSeña.TotalPagar)
            {
                _messageBoxDisplayService.ShowError("Los montos no coiniden");
                return;
            }

            int sucursal = 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" + sucursal.ToString().PadLeft(4, '0') + CalcularLCN().PadLeft(8, '0');
            clienteMontoFavor.Concepto          = "Seña " + clienteMontoFavor.LCN;
            clienteMontoFavor.Importe           = ucTotalesSeña.TotalPagar;
            clienteMontoFavor.ImpOcupado        = 0;
            clienteMontoFavor.Observaciones     = TipoComprobanteEnum.SeñaCliente.ToString();
            clienteMontoFavor.FechaAlta         = _clock.Now;
            clienteMontoFavor.OperadorAltaId    = Context.OperadorActual.Id;
            clienteMontoFavor.SucursalAltaId    = 2;

            Uow.ClientesMontosFavor.Agregar(clienteMontoFavor);



            //Recibo recibo = new Recibo();
            //recibo.Id = Guid.NewGuid();
            //recibo.SucursalCompId = Context.SucursalActual.Id;
            //recibo.Tipo = "3";//TipoComprobanteEnum.SeñaCliente;
            //recibo.PuntoVenta = Context.SucursalActual.Id;
            //var ultimoRecibo = _reciboNegocio.Listado("FechaAlta", "DESC", Context.SucursalActual.Id).First();
            //int numero;
            //int reciboNumero = int.TryParse(ultimoRecibo.Numero.Substring(1), out numero) ? numero : 0;
            //recibo.Numero = "C" + (numero + 1).ToString().PadLeft(13, '0');
            //recibo.FechaPago = _clock.Now;
            //recibo.Total = ucTotalesSeña.TotalPagar;
            //recibo.CobradorId = 0;
            //recibo.OperadorAltaId = Context.OperadorActual.Id;
            //recibo.SucursalAltaId = Context.SucursalActual.Id;
            //recibo.FechaAlta = _clock.Now;

            //Uow.Recibos.Agregar(recibo);

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

            var crearSenia = FormFactory.Create <FrmComprobante>();

            crearSenia._concepto = "Seña de Cliente";
            crearSenia._LCN      = clienteMontoFavor.LCN;
            var conv = new Conversion();

            crearSenia._montoTexto = conv.enletras(ucTotalesSeña.TotalPagar.ToString());
            //crearSenia._montoTexto = "cien";
            //crearSenia.Show();

            BuscarHistorial();
            Limpiar();
        }