예제 #1
0
        public void ListenerAfterExecuteDependentTask(object sender)
        {
            if (sender.GetType().Equals(typeof(mz.erp.businessrules.comprobantes.ComprobanteDeVenta)))
            {
                _procesoCambiarMercaderiaVisualizaVentana = true;
                ITask taskInfo = (ITask)sender;
                if (!taskInfo.GetTaskName().Equals("AnularPrevender") && !taskInfo.GetTaskName().Equals("AnularPreprestar")

                    //German 20111202 - Tarea 0000232
                    && !(this.GetProcessManagerParent().Process.ProcessName.Equals("ProcesoPrevenderReserva") && taskInfo.GetTaskName().Equals("Vender"))
                    //Fin German 20111202 - Tarea 0000232
                    )
                {
                    ComprobanteDeVenta comprobanteDeVenta = (ComprobanteDeVenta)sender;
                    bool _condicionDeVentaChanged         = this._idCondicionDeVenta != comprobanteDeVenta.CondicionDeVenta.IdCondicionDeVenta;
                    _idComprobanteDeVentaOrigen = comprobanteDeVenta.IdComprobanteOrigen;
                    _idCondicionDeVenta         = comprobanteDeVenta.CondicionDeVenta.IdCondicionDeVenta;
                    this._condicionDeVenta      = comprobanteDeVenta.CondicionDeVenta;

                    if (!(this._processParent.Process.ProcessName.Equals("ProcesoCambiarMercaderiaVentas") ||
                          this._processParent.Process.ProcessName.Equals("ProcesoCambiarMercaderiaVentasDV")))
                    {
                        this._totalNetoComprobanteDeVenta = comprobanteDeVenta.TotalNeto;
                        this._totalConImpuestosSinRecargosComprobanteDeVenta = comprobanteDeVenta.TotalConImpuestosSinRecargos;
                        this._totalConImpuestoComprobanteDeVenta             = comprobanteDeVenta.TotalConImpuestos;
                    }
                    else
                    {
                        if ((this._processParent.Process.ProcessName.Equals("ProcesoCambiarMercaderiaVentas") ||
                             this._processParent.Process.ProcessName.Equals("ProcesoCambiarMercaderiaVentasDV")))
                        {
                            if (taskInfo.GetTaskName().Equals("Devolver"))
                            {
                                this._totalConImpuestoComprobanteDeVentaOrigen             = comprobanteDeVenta.TotalConImpuestos;
                                this._totalNetoComprobanteDeVentaOrigen                    = comprobanteDeVenta.TotalNeto;
                                this._totalConImpuestosSinRecargosComprobanteDeVentaOrigen = comprobanteDeVenta.TotalConImpuestosSinRecargos;
                                this._totalComprobantedDeVentaOrigen = comprobanteDeVenta.Total;
                                this._condicionDeVentaOrigen         = comprobanteDeVenta.CondicionDeVenta;
                            }
                            else
                            {
                                if (taskInfo.GetTaskName().Equals("Vender") || taskInfo.GetTaskName().Equals("Prestar"))
                                {
                                    this._totalConImpuestoComprobanteDeVentaDestino             = comprobanteDeVenta.TotalConImpuestos;
                                    this._totalNetoComprobanteDeVentaDestino                    = comprobanteDeVenta.TotalNeto;
                                    this._totalConImpuestosSinRecargosComprobanteDeVentaDestino = comprobanteDeVenta.TotalConImpuestosSinRecargos;
                                    this._totalComprobantedDeVentaDestino = comprobanteDeVenta.Total;
                                    this._condicionDeVentaDestino         = comprobanteDeVenta.CondicionDeVenta;


                                    this._totalConImpuestoComprobanteDeVenta             = _totalConImpuestoComprobanteDeVentaDestino - _totalConImpuestoComprobanteDeVentaOrigen;
                                    this._totalNetoComprobanteDeVenta                    = _totalNetoComprobanteDeVentaDestino - _totalNetoComprobanteDeVentaOrigen;
                                    this._totalConImpuestosSinRecargosComprobanteDeVenta = _totalConImpuestosSinRecargosComprobanteDeVentaDestino - _totalConImpuestosSinRecargosComprobanteDeVentaOrigen;
                                    this._totalComprobantedDeVenta = _totalComprobantedDeVentaDestino - _totalComprobantedDeVentaOrigen;

                                    //Significa que el cliente acredita mas de lo que debita, por ende no hay que mostrar la ventana de formas de pagos
                                    if (_totalComprobantedDeVenta < 0)
                                    {
                                        _procesoCambiarMercaderiaVisualizaVentana = false;
                                    }
                                }
                            }
                        }
                    }

                    bool _idCuentaChanged = comprobanteDeVenta.Cuenta.IdCuenta != null &&
                                            comprobanteDeVenta.Cuenta.IdCuenta != string.Empty &&
                                            comprobanteDeVenta.Cuenta.IdCuenta != _idCuenta;
                    bool _idTipoDeComprobanteChanged = comprobanteDeVenta.TipoComprobanteDestino != null &&
                                                       comprobanteDeVenta.TipoComprobanteDestino != string.Empty &&
                                                       comprobanteDeVenta.TipoComprobanteDestino != _idTipoDeComprobante;
                    this._idCuenta            = comprobanteDeVenta.Cuenta.IdCuenta;
                    this._idTipoDeComprobante = comprobanteDeVenta.TipoComprobanteDestino;
                    if (_condicionDeVentaChanged || _idCuentaChanged || _idTipoDeComprobanteChanged)
                    {
                        _formasDePagos = mz.erp.businessrules.tfi_FormasDePagoEx.GetFormasDePago(_condicionDeVenta.IdCondicionDeVenta, this._idCuenta, this._idTipoDeComprobante);
                    }

                    AddFormaDePagoDefault();
                    if (_condicionDeVentaChanged && !IsStep() && !_totalNetoComprobanteDeVentaChanged)
                    {
                        if (MustResetRecargos())
                        {
                            ResetRecargos();
                        }
                    }
                    else
                    {
                        if (!IsStep() && _totalNetoComprobanteDeVentaChanged)
                        {
                            if (MustResetRecargos())
                            {
                                ResetRecargos();
                            }
                        }
                        else
                        {
                            if (IsStep() && ((_idCondicionDeVentaStep == null ||
                                              _idCondicionDeVentaStep.Equals(_idCondicionDeVenta)) &&
                                             (_totalNetoComprobanteDeVentaStep == decimal.MinValue ||
                                              _totalNetoComprobanteDeVentaStep.Equals(_totalNetoComprobanteDeVenta)) &&
                                             (_idComprobanteDeVentaStep == null ||
                                              _idComprobanteDeVentaStep.Equals(_idComprobanteDeVentaOrigen))
                                             )
                                )
                            {
                                this._totalNetoComprobanteDeVentaStep = this._totalNetoComprobanteDeVenta;
                                this._idCondicionDeVentaStep          = this._idCondicionDeVenta;
                                this._idComprobanteDeVentaStep        = _idComprobanteDeVentaOrigen;
                                this._totalComprobantedDeVenta        = comprobanteDeVenta.Total;
                                this.Step();
                            }

                            else
                            {
                                if (IsStep() && (!_idCondicionDeVentaStep.Equals(_idCondicionDeVenta) ||
                                                 !_totalNetoComprobanteDeVentaStep.Equals(_totalNetoComprobanteDeVenta)
                                                 ) && _idComprobanteDeVentaStep.Equals(_idComprobanteDeVentaOrigen))
                                {
                                    this._idCondicionDeVentaStep   = this._idCondicionDeVenta;
                                    this._totalComprobantedDeVenta = comprobanteDeVenta.Total;
                                    if (MustResetRecargos())
                                    {
                                        ResetRecargos();
                                    }
                                }
                                else
                                {
                                    if (IsStep() && !_idComprobanteDeVentaStep.Equals(_idComprobanteDeVentaOrigen))
                                    {
                                        this._modified = false;
                                        ResetRecargos();
                                        this._idComprobanteDeVentaStep        = _idComprobanteDeVentaOrigen;
                                        this._totalNetoComprobanteDeVentaStep = this._totalNetoComprobanteDeVenta;
                                        this._idCondicionDeVentaStep          = this._idCondicionDeVenta;
                                        this._totalComprobantedDeVenta        = comprobanteDeVenta.Total;
                                        this.Step();
                                    }
                                }
                            }
                        }
                    }
                    _allowShow = _formasDePagos.Count > 0;                  //!(_formasDePagos.Count == 0 || (_formasDePagos.Count == 1 && _recargos.Count == 1 ));
                    if (ObjectHasChanged != null)
                    {
                        ObjectHasChanged(this, new EventArgs());
                    }
                }
            }

            if (sender.GetType().Equals(typeof(mz.erp.businessrules.SeleccionItemsPendientes)))
            {
                SeleccionItemsPendientes ItemsPendientes = (SeleccionItemsPendientes)sender;
                if (ItemsPendientes.RelacionesComprobanteOrigenDestino != null && ItemsPendientes.RelacionesComprobanteOrigenDestino.Count > 0)
                {
                    this._relacionesComprobanteOrigenDestino = ItemsPendientes.RelacionesComprobanteOrigenDestino;
                }
            }
        }
예제 #2
0
        public void ListenerTaskDependentChanged(object sender)
        {
            if (sender.GetType().Equals(typeof(mz.erp.businessrules.comprobantes.ComprobanteDeVenta)))
            {
                ITask taskInfo = (ITask)sender;
                if (!taskInfo.GetTaskName().Equals("AnularPrevender") && !taskInfo.GetTaskName().Equals("AnularPreprestar")
                    //German 20111202 - Tarea 0000232
                    && !(this.GetProcessManagerParent().Process.ProcessName.Equals("ProcesoPrevenderReserva") && taskInfo.GetTaskName().Equals("Vender"))
                    //Fin German 20111202 - Tarea 0000232
                    )
                {
                    ComprobanteDeVenta comprobanteDeVenta = (ComprobanteDeVenta)sender;


                    if (!(this._processParent.Process.ProcessName.Equals("ProcesoCambiarMercaderiaVentas") ||
                          this._processParent.Process.ProcessName.Equals("ProcesoCambiarMercaderiaVentasDV")))
                    {
                        _totalNetoComprobanteDeVentaChanged = this._totalNetoComprobanteDeVenta != comprobanteDeVenta.TotalNeto || _totalNetoComprobanteDeVentaChanged; // && !_idComprobanteDeVentaOrigenChanged;
                        if (_totalNetoComprobanteDeVentaChanged)                                                                                                        //|| _condicionDeVentaChanged)
                        {
                            this._totalConImpuestoComprobanteDeVenta             = comprobanteDeVenta.TotalConImpuestos;
                            this._totalNetoComprobanteDeVenta                    = comprobanteDeVenta.TotalNeto;
                            this._totalConImpuestosSinRecargosComprobanteDeVenta = comprobanteDeVenta.TotalConImpuestosSinRecargos;

                            if (ObjectHasChanged != null)
                            {
                                ObjectHasChanged(this, new EventArgs());
                            }
                        }
                    }
                    else
                    {
                        if ((this._processParent.Process.ProcessName.Equals("ProcesoCambiarMercaderiaVentas") ||
                             this._processParent.Process.ProcessName.Equals("ProcesoCambiarMercaderiaVentasDV")))
                        {
                            if (this._taskName.Equals("Devolver"))
                            {
                                this._totalConImpuestoComprobanteDeVentaOrigen             = comprobanteDeVenta.TotalConImpuestos;
                                this._totalNetoComprobanteDeVentaOrigen                    = comprobanteDeVenta.TotalNeto;
                                this._totalConImpuestosSinRecargosComprobanteDeVentaOrigen = comprobanteDeVenta.TotalConImpuestosSinRecargos;
                                this._totalComprobantedDeVentaOrigen = comprobanteDeVenta.Total;
                                this._condicionDeVentaOrigen         = comprobanteDeVenta.CondicionDeVenta;
                            }
                            else
                            {
                                if (this._taskName.Equals("Vender") || this._taskName.Equals("Prestar"))
                                {
                                    _totalNetoComprobanteDeVentaChanged = (this._totalNetoComprobanteDeVenta != (comprobanteDeVenta.TotalNeto - _totalNetoComprobanteDeVentaOrigen)) || _totalNetoComprobanteDeVentaChanged;                                    // && !_idComprobanteDeVentaOrigenChanged;


                                    this._totalConImpuestoComprobanteDeVentaDestino             = comprobanteDeVenta.TotalConImpuestos;
                                    this._totalNetoComprobanteDeVentaDestino                    = comprobanteDeVenta.TotalNeto;
                                    this._totalConImpuestosSinRecargosComprobanteDeVentaDestino = comprobanteDeVenta.TotalConImpuestosSinRecargos;
                                    this._totalComprobantedDeVentaDestino = comprobanteDeVenta.Total;
                                    this._condicionDeVentaDestino         = comprobanteDeVenta.CondicionDeVenta;


                                    if (_totalNetoComprobanteDeVentaChanged)                                    //|| _condicionDeVentaChanged)
                                    {
                                        this._totalConImpuestoComprobanteDeVenta             = _totalConImpuestoComprobanteDeVentaDestino - _totalConImpuestoComprobanteDeVentaOrigen;
                                        this._totalNetoComprobanteDeVenta                    = _totalNetoComprobanteDeVentaDestino - _totalNetoComprobanteDeVentaOrigen;
                                        this._totalConImpuestosSinRecargosComprobanteDeVenta = _totalConImpuestosSinRecargosComprobanteDeVentaDestino - _totalConImpuestosSinRecargosComprobanteDeVentaOrigen;
                                        this._totalComprobantedDeVenta = _totalComprobantedDeVentaDestino - _totalComprobantedDeVentaOrigen;

                                        //Significa que el cliente acredita mas de lo que debita, por ende no hay que mostrar la ventana de formas de pagos
                                        if (_totalComprobantedDeVenta < 0)
                                        {
                                            _procesoCambiarMercaderiaVisualizaVentana = false;
                                        }

                                        if (ObjectHasChanged != null)
                                        {
                                            ObjectHasChanged(this, new EventArgs());
                                        }
                                    }
                                }
                            }

                            /*
                             * _totalNetoComprobanteDeVentaChanged = this._totalNetoComprobanteDeVenta != comprobanteDeVenta.TotalNeto || _totalNetoComprobanteDeVentaChanged;// && !_idComprobanteDeVentaOrigenChanged;
                             * if(_totalNetoComprobanteDeVentaChanged )//|| _condicionDeVentaChanged)
                             * {
                             *
                             *      this._totalConImpuestoComprobanteDeVenta = comprobanteDeVenta.TotalConImpuestos;
                             *      this._totalNetoComprobanteDeVenta = comprobanteDeVenta.TotalNeto;
                             *      this._totalConImpuestosSinRecargosComprobanteDeVenta = comprobanteDeVenta.TotalConImpuestosSinRecargos;
                             *
                             *      if(ObjectHasChanged != null)
                             *              ObjectHasChanged(this, new EventArgs());
                             *
                             * }
                             */
                        }
                    }
                }
            }
        }