예제 #1
0
 public void ConsultaPedidos()
 {
     this._datosFolio.ConsultaListaPedidos(this._añoAtt, this._folio, this._dtListaPedido);
     if (!Convert.ToBoolean(Convert.ToByte(this._parametros.ValorParametro("DescuentoProntoPago"))))
     {
         return;
     }
     foreach (DataRow dataRow in (InternalDataCollectionBase)this._dtListaPedido.Rows)
     {
         Cliente cliente = new Cliente(Convert.ToInt32(dataRow["Cliente"]), (byte)7);
         cliente.ConsultaDatosCliente();
         dataRow["Descuento"] = !cliente.Encontrado ? (object)0 : (object)(cliente.Descuento * Convert.ToDecimal(dataRow["Litros"]));
         if ((int)Convert.ToInt16(this._parametros.ValorParametro("LiqPrecioNeto")) == 0)
         {
             Precio    precio    = new Precio(this._claseRuta, this._fecha, this._preciosMultiples);
             DataTable dataTable = new DataTable();
             Decimal   num1      = ControlDeDescuento.Instance.PrecioAutorizado(precio.ListaPrecios(), cliente.Descuento, cliente.ZonaEconomica);
             if (Convert.ToDecimal(dataRow["Precio"]) == num1)
             {
                 dataRow["Descuento"] = (object)0;
             }
             else
             {
                 dataRow["Descuento"] = (object)(cliente.Descuento * Convert.ToDecimal(dataRow["Litros"]));
                 Decimal num2 = cliente.Descuento * Convert.ToDecimal(dataRow["Litros"]);
             }
         }
     }
 }
    protected void btnBuscar_Click(object sender, ImageClickEventArgs e)
    {
        btnAceptar.Enabled = true;

        limpiaControles();

        try
        {
            if (txtPedido.Text.Trim().Length == 0)
            {
                DocumentosBSR.SerieDocumento.SeparaSerie(txtRemision.Text);
                _pedido = new SigametLiquidacion.Pedido(DocumentosBSR.SerieDocumento.Serie, DocumentosBSR.SerieDocumento.FolioNota);
            }
            else
            {
                _pedido = new SigametLiquidacion.Pedido(txtPedido.Text);
            }

            Session["PedidoCambioRemision"] = _pedido;

            txtPedido.Text      = _pedido.PedidoReferencia;
            txtRemision.Text    = _pedido.SerieRemision.Trim() + _pedido.FolioRemision.ToString().Trim();
            lblLitros.Text      = _pedido.Litros.ToString();
            lblTotal.Text       = _pedido.Importe.ToString("C");
            lblFormaPago.Text   = (_pedido.FormaPago == 5) ? "CONTADO" : "CREDITO";
            lblFolio.Text       = _pedido.AñoAtt + " - " + _pedido.FolioAtt;
            lblFSuministro.Text = _pedido.FechaSuministro.ToShortDateString();

            _cliente = new SigametLiquidacion.Cliente(_pedido.Cliente, 7);
            _cliente.ConsultaDatosCliente();
            lblCliente.Text   = _cliente.NumeroCliente.ToString();
            lblNombre.Text    = _cliente.Nombre;
            lblDomicilio.Text = _cliente.Direccion;

            _parametros = new SigametLiquidacion.Parametros(1, 1, 22);

            if ((DateTime.Today.Date - _pedido.FechaSuministro.Date).Days > Convert.ToInt32(_parametros.ValorParametro("LimiteDiasModificacion")))
            {
                lblError.Text      = "No puede modificar este pedido, ya concluyó el periodo permitido realizar cambios";
                btnAceptar.Enabled = false;
            }

            if (_pedido.Factura.Trim().Length > 0)
            {
                lblError.Text      = "No puede modificar este pedido, ya fué facturado (Folio Factura: " + _pedido.Factura + ")";
                btnAceptar.Enabled = false;
            }
        }
        catch (Exception ex)
        {
            lblError.Text = "Error:" + (char)13 + ex.Message;
        }
    }
예제 #3
0
        public void DescargaSuministros(TipoOperacionDescarga TipoDescarga)
        {
            ControlDeCredito.Instance.Parametros   = this._parametros;
            ControlDeDescuento.Instance.Parametros = this._parametros;
            bool   folioRemisionAutomatico = Convert.ToBoolean(Convert.ToByte(this._parametros.ValorParametro("FolioRemisionAutomatico")));
            Precio precio = Convert.ToBoolean(Convert.ToByte(this._parametros.ValorParametro("MultipesZonasEconomicas"))) ?
                            new Precio((int)this._ruta, this._claseRuta, this._fecha, this._preciosMultiples) :
                            new Precio(this._claseRuta, this._fecha, this._preciosMultiples);

            if (this._status == "LIQUIDADO" || this._status == "LIQCAJA")
            {
                return;
            }
            DataTable ListaPedidos = new DataTable("Suministros");

            if (TipoDescarga == TipoOperacionDescarga.Rampac)
            {
                ListaPedidos = this._datosFolio.DescargaRampac(this._añoAtt, this._folio);
            }
            if (Convert.ToBoolean(Convert.ToByte(this._parametros.ValorParametro("SumarizarSuministros"))))
            {
                ListaPedidos = this.AgruparSuministros(ListaPedidos);
            }
            foreach (DataRow dataRow in ListaPedidos.Rows)
            {
                int     Cliente1          = (int)dataRow["Cliente"];
                int     ConsecutivoOrigen = (int)dataRow["Consecutivo"];
                string  FormaPago         = (string)dataRow["FormaPago"];
                Decimal Precio            = (Decimal)dataRow["Precio"];
                Decimal TotalPedido       = (Decimal)dataRow["Importe"];
                Cliente Cliente2          = new Cliente(Cliente1, (byte)7);

                Cliente2.FSuministro = Fecha;//21-07-15 Consulta de precio de acuerdo a la zona económica del cliente.

                Cliente2.ConsultaDatosCliente();
                int    folioRemision         = 0;
                string folioRemisionCompleto = string.Empty;
                if (folioRemisionAutomatico && this._folioRemisionAutomaticoRuta)
                {
                    //TODO: Revisar como parametrizar remisión SGC

                    /*
                     * SerieDocumento.SeparaSerie(Convert.ToString(dataRow["FolioNota"]));
                     * //this._serieRemision = SerieDocumento.get_Serie();
                     * this._serieRemision = SerieDocumento.Serie;
                     * //num1 = SerieDocumento.get_FolioNota();
                     * folioRemision = SerieDocumento.FolioNota;
                     * */
                    string folioNotaRemision = Convert.ToString(dataRow["FolioNota"]);
                    //Temporal, para pedidos sin número de contrato
                    folioRemisionCompleto = folioNotaRemision;
                    //
                    string serieNotaRemision = folioNotaRemision.Substring(0, this.longitudSerieNota);
                    folioNotaRemision   = folioNotaRemision.Remove(0, this.longitudSerieNota);
                    this._serieRemision = serieNotaRemision;
                    folioRemision       = Convert.ToInt32(folioNotaRemision);
                }
                if (Cliente2.Encontrado && Cliente2.NumeroCliente > 0)
                {
                    string ObservacionesConciliacion = string.Empty;
                    bool   creditoAutorizado         = true;
                    if (!ControlDeCredito.Instance.AutorizacionCredito(ControlDeCredito.Instance.AsignarFormaPago(FormaPago, "CRÉDITO", Cliente2.TipoCreditoCliente), TotalPedido, ControlDeCredito.Instance.ResumenSaldoCliente(Cliente2.NumeroCliente, this._dtListaPedido), Cliente2, this.Tripulacion.LimiteCreditoDisponible(ControlDeCredito.Instance.ResumenSaldoTipoCobro((byte)9, this._dtListaPedido, "CONCILIADO"))))
                    {
                        creditoAutorizado         = false;
                        ObservacionesConciliacion = "Crédito no autorizado";
                    }
                    if (!ControlDeDescuento.Instance.DescuentoAutorizado(Cliente2, (Decimal)dataRow["Precio"], precio.ListaPrecios()))
                    {
                        creditoAutorizado = false;
                        //22-07-2015 - Selección del precio de acuerdo a la zona económica del cliente.
                        creditoAutorizado = ((Decimal)dataRow["Precio"] == Cliente2.PrecioCliente);

                        if (!creditoAutorizado)
                        {
                            ObservacionesConciliacion = "Descuento no autorizado (Surtido a $ " + ((Decimal)dataRow["Precio"]).ToString("0.00") + "/lt )";
                        }
                    }
                    if (creditoAutorizado)
                    {
                        Pedido pedido       = new Pedido(Cliente2.NumeroCliente);
                        bool   pedidoActivo = false;
                        try
                        {
                            pedidoActivo = pedido.ConsultaPedidoActivo();
                        }
                        catch (Exception ex)
                        {
                        }
                        if (!pedidoActivo)
                        {
                            try
                            {
                                pedido.AltaPedido(this._añoAtt, this._folio, Cliente2.Celula, Cliente2.Ruta, this._fecha, this._usuario);
                                pedido.ConsultaPedidoActivo();
                            }
                            catch (Exception ex)
                            {
                            }
                        }
                        pedido.AñoAtt            = this._añoAtt;
                        pedido.FolioAtt          = this._folio;
                        pedido.Litros            = Convert.ToDouble(dataRow["Litros"]);
                        pedido.FechaSuministro   = this._fecha;
                        pedido.Precio            = Precio;
                        pedido.RutaSuministro    = this._ruta;
                        pedido.AutoTanque        = this._autoTanque;
                        pedido.FormaPago         = ControlDeCredito.Instance.AsignarFormaPago(FormaPago, "CRÉDITO", Cliente2.TipoCreditoCliente);
                        pedido.TipoDescarga      = TipoDescarga;
                        pedido.ConsecutivoOrigen = ConsecutivoOrigen;
                        if (folioRemision > 0)
                        {
                            pedido.SerieRemision = this._serieRemision;
                            pedido.FolioRemision = folioRemision;
                        }
                        Decimal num2      = new Decimal(0);
                        Decimal Descuento = !Convert.ToBoolean(Convert.ToByte(this._parametros.ValorParametro("DescuentoProntoPago"))) ? new Decimal(0) : Convert.ToDecimal(pedido.Litros) * Cliente2.Descuento;
                        if ((int)Convert.ToInt16(this._parametros.ValorParametro("LiqPrecioNeto")) == 0)
                        {
                            Descuento = !(pedido.Precio < precio.PrecioVigente) ? (!Convert.ToBoolean(Convert.ToByte(this._parametros.ValorParametro("DescuentoProntoPago"))) ? new Decimal(0) : Convert.ToDecimal(pedido.Litros) * Cliente2.Descuento) : new Decimal(0);
                        }
                        pedido.ImporteDescuentoAplicado = Convert.ToDecimal(pedido.Litros) * Cliente2.Descuento;
                        pedido.DescuentoAplicado        = Descuento == new Decimal(0) && pedido.ImporteDescuentoAplicado > new Decimal(0);
                        try
                        {
                            pedido.LiquidaPedido();
                            this.AltaPedido(Cliente2.NumeroCliente, pedido.Celula, pedido.AñoPed, pedido.NumeroPedido, Cliente2.Nombre,
                                            pedido.PedidoReferencia, pedido.Litros, pedido.Precio, pedido.Importe, pedido.FormaPago,
                                            pedido.TipoPedido, "CONCILIADO", Convert.ToInt32((object)TipoDescarga), ConsecutivoOrigen, folioRemision > 0 ? folioRemision.ToString() : string.Empty,
                                            string.Empty, Descuento);
                        }
                        catch (Exception ex)
                        {
                            Trace.Write((object)ex);
                        }
                    }
                    else
                    {
                        this.AltaPedido(Cliente1, (short)0, (short)0, 0, Cliente2.Nombre, string.Empty, Convert.ToDouble(dataRow["Litros"]), Precio, (Decimal)dataRow["Litros"] * Precio, ControlDeCredito.Instance.AsignarFormaPago(FormaPago, "CRÉDITO", Cliente2.TipoCreditoCliente), (byte)0, "ERROR", Convert.ToInt32((object)TipoDescarga), ConsecutivoOrigen, string.Empty, ObservacionesConciliacion, new Decimal(0));
                    }
                }
                else
                {
                    this.AltaPedido(Cliente1, (short)0, (short)0, 0, string.Empty, string.Empty,
                                    Convert.ToDouble(dataRow["Litros"]), Precio, (Decimal)dataRow["Litros"] * Precio, (byte)5, (byte)0,
                                    "PENDIENTE", Convert.ToInt32((object)TipoDescarga), ConsecutivoOrigen,
                                    folioRemision > 0 ? folioRemisionCompleto : string.Empty,
                                    string.Empty, new Decimal(0));
                }
            }
        }