public void ListenerAfterExecuteDependentTask(object sender)
 {
     if (sender.GetType().Equals(typeof(mz.erp.businessrules.SeleccionItemsPendientes)))
     {
         SeleccionItemsPendientes sip = (SeleccionItemsPendientes)sender;
         if (_processParent.Process.ProcessName.Equals("ProcesoVenderDevolver") ||
             _processParent.Process.ProcessName.Equals("ProcesoPrestarDevolver") ||
             _processParent.Process.ProcessName.Equals("ProcesoVenderDevolverManual") ||
             _processParent.Process.ProcessName.Equals("ProcesoVenderDevolverBienDeUso")
             )
         {
             LoadFromSeleccionarItemsPendientesPorItem(sip);
         }
         else
         {
             LoadFromSeleccionarItemsPendientes(sip);
         }
     }
 }
 private void LoadFromSeleccionarItemsPendientes(SeleccionItemsPendientes sip)
 {
     if (_analizarCaminosPorItem)
     {
         foreach (RelacionComprobanteOrigenDestino crod in sip.RelacionesComprobanteOrigenDestino)
         {
             string IdTipoDeComprobanteOrigen = crod.IdTipoDeComprobante;
             string IdComprobante             = crod.IdComprobante;
             /*Falta Implementar este metodo*/
             //ObtenerCaminos(IdComprobante, IdTipoDeComprobanteOrigen, crod.OrdinalOrigen);
         }
     }
     else
     {
         string IdTipoDeComprobanteOrigen = sip.RelacionesComprobanteOrigenDestino.Get(0).IdTipoDeComprobante;
         string IdComprobante             = sip.RelacionesComprobanteOrigenDestino.Get(0).IdComprobante;
         ObtenerCaminos(IdComprobante, IdTipoDeComprobanteOrigen);
     }
 }
Пример #3
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;
                }
            }
        }
 private void LoadFromSeleccionarItemsPendientesPorItem(SeleccionItemsPendientes sip)
 {
     _relaciones               = new RelacionesComprobanteOrigenDestino();
     _relaciones.IdCuenta      = sip.RelacionesComprobanteOrigenDestino.IdCuenta;
     _relaciones.Observaciones = sip.RelacionesComprobanteOrigenDestino.Observaciones;
     foreach (RelacionComprobanteOrigenDestino crod in sip.RelacionesComprobanteOrigenDestino)
     {
         string IdTipoDeComprobanteOrigen = crod.IdTipoDeComprobante;
         string IdComprobante             = crod.IdComprobante;
         long   ordinal = crod.OrdinalOrigen;
         string TipoComprobanteDestino = string.Empty;
         if (_tableHaciaAdelante.ContainsKey(IdTipoDeComprobanteOrigen))
         {
             //German 20090520
             if (crod.CantidadDestino > 0)
             {
                 //Fin German 20090520
                 ArrayList TipoComprobanteDestinoList = (ArrayList)_tableHaciaAdelante[IdTipoDeComprobanteOrigen];
                 TipoComprobanteDestino = mz.erp.systemframework.Util.PackString(TipoComprobanteDestinoList);
                 DataSet data                         = Workflow.GetCaminoComprobantesOrdinalTopDown(IdComprobante, ordinal, TipoComprobanteDestino);
                 decimal cantIntemerdios              = 0;
                 decimal cantFinales                  = 0;
                 string  IdComprobantePreparado       = string.Empty;
                 string  IdTipoDeComprobantePreparado = string.Empty;
                 long    OrdinalPreparado             = -1;
                 foreach (DataRow row in data.Tables[0].Rows)
                 {
                     string  ITDC = Convert.ToString(row["IdTipoDeComprobante"]);
                     decimal cant = Convert.ToDecimal(row["Cantidad"]);
                     long    ord  = Convert.ToInt64(row["Ordinal"]);
                     if (_comprobantesIntermedios.Contains(ITDC))
                     {
                         IdComprobantePreparado       = Convert.ToString(row["IdComprobante"]);
                         IdTipoDeComprobantePreparado = ITDC;
                         OrdinalPreparado             = ord;
                         cantIntemerdios = cant;
                     }
                     if (TipoComprobanteDestinoList.Contains(ITDC))
                     {
                         cantFinales = cantFinales + cant;
                     }
                 }
                 //Se debe anular el comprobante de preparado pues no fue entregada
                 if ((cantIntemerdios - cantFinales) > 0)
                 {
                     RelacionComprobanteOrigenDestino rcod = new RelacionComprobanteOrigenDestino(
                         IdComprobantePreparado,
                         IdTipoDeComprobantePreparado,
                         string.Empty,
                         OrdinalPreparado,
                         cantIntemerdios,
                         crod.CantidadDestino,
                         crod.IdProducto,
                         crod.Descripcion,
                         crod.Precio,
                         crod.IdCondicionDeVenta,
                         crod.PrecioNetoActual,
                         string.Empty,
                         string.Empty,
                         string.Empty,
                         crod.IdListaDePrecios,
                         crod.CoeficienteListaDePrecios,
                         crod.ModoDeAplicacionListaDePrecios,
                         crod.IdListaDePreciosDefault);
                     _relaciones.Add(rcod);
                 }
             }
             //German 20090520
         }
         //Fin German 20090520
     }
 }