示例#1
0
        public FrmCrearVenta(IClock clock,
                             IFormFactory formFactory,
                             IMessageBoxDisplayService messageBoxDisplayService,
                             IVentaNegocio ventaNegocio,
                             IClienteNegocio clienteNegocio,
                             IFormRegistry formRegistry,
                             DirectPrint directPrint,
                             int id,
                             ActionFormMode mode)
        {
            FormFactory  = formFactory;
            FormRegistry = formRegistry;

            _clock = clock;
            _messageBoxDisplayService = messageBoxDisplayService;
            _ventaNegocio             = ventaNegocio;
            _clienteNegocio           = clienteNegocio;
            _directPrint = directPrint;
            _id          = id;
            _formMode    = mode;

            InitializeComponent();
            InicializarForm(mode);
        }
        private void RealizarVenta()
        {
            RendirConsignacionClienteData consignacionData = new RendirConsignacionClienteData();

            consignacionData.EsVentaReservada  = _formMode == ActionFormMode.Edit;
            consignacionData.OperadorId        = Context.OperadorActual.Id;
            consignacionData.SucursalId        = Context.SucursalActual.Id;
            consignacionData.NumeroComprobante = _id;
            consignacionData.ClienteId         = _cliente.Id;

            consignacionData.TipoComprobanteSeleccionado    = UcBuscadorConsignacion.TipoComprobanteSeleccionado;
            consignacionData.CondicionVentaSeleccionada     = UcBuscadorConsignacion.CondicionVentaSeleccionada;
            consignacionData.TipoCajaMovimientoSeleccionado = UcBuscadorConsignacion.TipoCajaMovimientoSeleccionado;

            consignacionData.TotalPagar         = UcTotalesVenta.TotalPagar;
            consignacionData.Senas              = UcTotalesVenta.Senas;
            consignacionData.CreditosDevolucion = UcTotalesVenta.CreditosDevolucion;

            UcTitulosConsignacionVenta.ActualizarInfo();
            consignacionData.RemitosVentaDetalle = UcTitulosConsignacionVenta.Titulos;

            consignacionData.CajaActualId = Context.CajaActual.Id;
            consignacionData.Anticipo     = UcCuentaCorrienteInfo.Anticipo;
            //consignacionData.SubTotal = UcCuentaCorrienteInfo.SubTotal;
            consignacionData.SubTotal = UcTotalesVenta.SubTotal;

            consignacionData.Pagos            = UcTotalesVenta.Pagos;
            consignacionData.Cuotas           = UcCuentaCorrienteInfo.Cuotas;
            consignacionData.Montocuota       = UcCuentaCorrienteInfo.Montocuota;
            consignacionData.VencimientoCuota = UcCuentaCorrienteInfo.Vencimiento;
            consignacionData.PcAlta           = Environment.MachineName;
            consignacionData.PuntoVenta       = Context.SucursalActual.SucursalNumero ?? 1;

            CrearVentaResponse ventaResponse;

            try
            {
                ventaResponse = _ventaNegocio.CrearVentaRendicionConsignacionCliente(consignacionData);
            }
            catch (ApplicationException ex)
            {
                _messageBoxDisplayService.ShowError(ex.Message);
                return;
            }

            //if (ventaResponse.Comprobantes.Count != 0)
            //{
            foreach (var comprobante in ventaResponse.Comprobantes)
            {
                using (var crearComprobante = FormFactory.Create <FrmComprobante>())
                {
                    crearComprobante._concepto = comprobante.Concepto;
                    crearComprobante._LCN      = comprobante.LCN;
                    var conv = new Conversion();
                    crearComprobante._montoTexto       = conv.enletras((comprobante.Importe - comprobante.ImpOcupado).ToString());
                    crearComprobante._montoActualizado = (comprobante.Importe - comprobante.ImpOcupado);
                    crearComprobante.ShowDialog();
                }
            }

            //  _messageBoxDisplayService.ShowSuccess(Resources.MessageSuccessVentaExitosa);

            if (ChkImprimir.Checked)
            {
                DirectPrint print = new DirectPrint(Uow);
                print.Descripcion = ventaResponse.FacturaInfo.Descripcion;
                print.FormaPago   = ventaResponse.FacturaInfo.FormaPago;
                print.Recargo     = UcTotalesVenta.Recargo.ToString();
                print.GenerarFactura(ventaResponse.VentaId);
            }

            using (var crearVenta = FormFactory.Create <FrmFacturaVenta>(ventaResponse.VentaId))
            {
                if (ventaResponse.VentaId != Guid.Empty)
                {
                    crearVenta._descripcion = ventaResponse.FacturaInfo.Descripcion;
                    crearVenta._formaPago   = ventaResponse.FacturaInfo.FormaPago;
                    crearVenta._recargo     = UcTotalesVenta.Recargo.ToString();

                    crearVenta.ShowDialog();
                }
            }

            OnVentaRealizada();
            //}
            //else
            //{
            _messageBoxDisplayService.ShowSuccess("Rendición guardada con éxito");
            //}

            var pageTab = this.Parent as RadPageViewPage;

            if (pageTab != null)
            {
                pageTab.Dispose();
            }
            ;

            if (_formMode == ActionFormMode.Edit)
            {
                this.Close();
            }
        }