Exemple #1
0
        private void Step()
        {
            if (!_modified)
            {
                _recargos.Clear();
                ArrayList formasDePago  = new ArrayList();
                string    IdComprobante = string.Empty;
                ArrayList arrayValores  = new ArrayList();
                foreach (RelacionComprobanteOrigenDestino relacion in this._relacionesComprobanteOrigenDestino)
                {
                    if (!IdComprobante.Equals(relacion.IdComprobante))
                    {
                        IdComprobante = relacion.IdComprobante;
                        string            IdCondicionDeVenta   = relacion.IdCondicionDeVenta;
                        ComprobanteDePago precomprobanteDePago = Factory.GetComprobanteDePago(IdComprobante, IdCondicionDeVenta);
                        Valores           valores = precomprobanteDePago.Valores;

                        foreach (Valor valor in valores.MisValores)
                        {
                            bool ok    = true;
                            int  index = 0;
                            while (ok)
                            {
                                if (index < _formasDePagos.Count)
                                {
                                    FormaDePago formaDePago = (FormaDePago)_formasDePagos[index];
                                    if (valor.IdFormaDePago != null && !valor.IdFormaDePago.Equals(string.Empty) && valor.IdFormaDePago.Equals(formaDePago.IdFormaDePago))
                                    {
                                        formasDePago.Add(formaDePago.ShallowClone());
                                        valor.IsStep = true;
                                        arrayValores.Add(valor);
                                        ok = false;
                                    }
                                    else
                                    {
                                        /*
                                         * decimal _porcentajeRecargo = 0;
                                         * if(valor.MontoCotizado > 0)
                                         *      _porcentajeRecargo = Math.Abs(decimal.Round((decimal.Round(valor.MontoCotizado,4) - decimal.Round(valor.MontoSinRecargos,4))*100/decimal.Round(valor.MontoSinRecargos,4),2));
                                         */
                                        bool _isValid = formaDePago.IdTDComprobante.Equals(valor.IdTDCompTesoreria) &&
                                                        /*formaDePago.Recargo.Equals(_porcentajeRecargo) &&*/ formaDePago.GetIdMoneda().Equals(valor.IdMoneda);
                                        if (_isValid)
                                        {
                                            formasDePago.Add(formaDePago.ShallowClone());
                                            arrayValores.Add(valor);
                                            valor.IsStep = true;
                                            ok           = false;
                                        }
                                    }
                                    index++;
                                }
                                else
                                {
                                    ok = false;
                                }
                            }
                        }
                    }
                }
                int i = 0;
                foreach (FormaDePago formaDePago in formasDePago)
                {
                    Valor valor = (Valor)arrayValores[i];
                    _recargos.AddRecargo(valor, formaDePago, this._totalConImpuestosSinRecargosComprobanteDeVenta, this._totalComprobantedDeVenta);
                    i++;
                }

                /*
                 * if(_recargos.Count > 0)
                 * {
                 *      if(ObjectHasChanged != null)
                 *              ObjectHasChanged(this, new EventArgs());
                 * }
                 */
            }
            if (_recargos.Count == 0)
            {
                AddFormaDePagoDefault();
            }
        }
Exemple #2
0
        private bool MustResetRecargos()
        {
            foreach (RecargoFormaDePago recargo in _recargos)
            {
                bool ok    = true;
                int  index = 0;
                while (ok && index < _formasDePagos.Count)
                {
                    FormaDePago formaDePagoRecargo = recargo.FormaDePago;
                    FormaDePago formaDePago        = (FormaDePago)_formasDePagos[index];
                    if (formaDePagoRecargo.IdFormaDePago != null && !formaDePagoRecargo.IdFormaDePago.Equals(string.Empty) && formaDePagoRecargo.IdFormaDePago.Equals(formaDePago.IdFormaDePago))
                    {
                        ok = false;
                    }
                    else
                    {
                        bool _isValid = formaDePago.IdTDComprobante.Equals(formaDePagoRecargo.IdTDComprobante) &&
                                        formaDePago.Recargo.Equals(formaDePagoRecargo.Recargo) && formaDePago.GetIdMoneda().Equals(formaDePagoRecargo.IdMoneda);
                        if (_isValid)
                        {
                            ok = false;
                        }
                    }

                    index++;
                }
                if (ok)
                {
                    return(true);
                }
            }
            return(false);
        }