Beispiel #1
0
        private void Page_Load(object sender, System.EventArgs e)
        {
            Page.RegisterStartupScript("init", SisPackController.GenerarJavaScripts.SetearFocoControl(this.txtTarifarioDescrip.ClientID));
            //"Cliente"
            tipoTarifario = this.Request.QueryString["TipoTarifario"];
//			butGuardarImportes.Attributes.Add("onclick", "window.document.getElementById('" + accion + "').value = 'G'; return confirm('Se eliminarán los importes que hayan quedado en blanco. Desea continuar?')");
            if (this.Request.QueryString["Modal"] != null)
            {
                modal = (this.Request.QueryString["Modal"] == "S");
            }
            else
            {
                modal = false;
            }
            if (!modal)
            {
                this.LoadUCMenu();
            }

            if (!IsPostBack)
            {
                /*if(this.Request.QueryString["SoloLectura"]!= null)
                 * {
                 *      if(this.Request.QueryString["SoloLectura"]== "N")
                 *              soloLectura = false;
                 *      else if(this.Request.QueryString["SoloLectura"]=="S")
                 *              soloLectura = true;
                 * }*/

                //Session["tarifario"] = null;
                tariFlete = TarifarioFleteFactory.GetTarifarioFlete();


                if (this.Request.QueryString["TarifarioFleteID"] != null)
                {
                    tariFlete.TarifarioFleteID = Convert.ToInt32(Request.QueryString["TarifarioFleteID"]);
                    tariFlete.Consultar();
                }
                else
                {
                    this.tblTarifarioRef.Attributes.Add("Style", "Display: none");
                    this.tblVariacion.Attributes.Add("Style", "Display: none");
                    this.tblDesvincularTarifario.Attributes.Add("Style", "Display: none");
                }

                this.CargarCombos();

                if (tariFlete.TarifarioFleteID > 0)
                {
                    this.ConsultarTarifario();
                }

                Session["tarifario"] = tariFlete;
            }

            this.SetearValidadores();

            //PAO:24/03/2005 - lo agregue porque cuando te volves con el back del IE, se muere la variable
            //de sesión
            if (Session["tarifario"] != null)
            {
                tariFlete = (ITarifarioFlete)Session["tarifario"];
            }
            else
            {
                tariFlete = TarifarioFleteFactory.GetTarifarioFlete();
            }

            //tariFlete = TarifarioFleteFactory.GetTarifarioFlete();
            //PAO:24/03/2005
            //
            if (tariFlete.TieneTarifariosDerivados() || tariFlete.AsociadoUnidadVenta())
            {
                //VER.Si tiene tarifarios derivados y NO hay un tarifario gral.
                //Quizas sí habilitar el check de tarifario general.
                soloLectura = true;
            }
            else
            {
                soloLectura = false;
            }
            if (tariFlete.TarifarioFleteRefID > 0)
            {
                butGuardarTarifario.Attributes.Add("onclick", "return confirm('Si ha modificado la variación, se recalcularán los importes. Desea continuar?')");
            }

            RegistrarCambioTarifarioRef();
            RegistrarMostrarVariacion();
            ddlTarifarioReferencia.Attributes.Add("onchange", "CambiarComboValorizacion()");
            chkVariacionTarifario.Attributes.Add("onclick", "MostrarVariacion()");

            /*SFE Mostrar u ocultar el importe minimo del valor declarado segun el la valorizacion del Tarifario*/
            RegistrarHabilitarImporteMinimo();
            ddlValorizacion.Attributes.Add("onchange", "MostrarImporteMinimo();");

            if (tariFlete.TarifarioFleteID != 0)
            {
                try
                {
                    this.LoadUCZonasTopes();
                }
                catch (Exception ex)
                {
                    string mensaje = ex.Message;
                    try
                    {
                        mensaje = this.TraducirTexto(ex.Message);
                        if (mensaje == "" || mensaje == null)
                        {
                            mensaje = ex.Message;
                        }
                    }
                    catch (Exception)
                    {
                        mensaje = ex.Message;
                    }
                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(mensaje);
                }
            }

            if (tariFlete.HayTarifarioGeneral() || tariFlete.TarifarioFleteRefID != 0)
            {
                chkTarifarioGeneral.Enabled = false;
            }
            this.MostrarTablas();
            //Esto es necesario cuando se carga la pagina cuando....ver si solo cuando se hace Postback
            this.SetLecturaUC();
            //this.butGuardarTarifario.Enabled=true;
            //Cambiar a que no sea siempre de solo lectura, sino que se setean los valores de
            //acuerdo a otros datos.

            //Si el tarifario tiene tarifarios derivados, no permitir realizar cambios
            //de otro modo sí:
            //Cambios: si no tiene tarif de referencia, habilitar modificr en importes y en todos
            //lados. Sino, dejar solo que se pueda modificar la parte del tarifario de referencia (no qué tarifario sino en cuanto)
            //y en el guardar, chequear que si es diferente la variación, recalcule los importes que ya posee (zonastopes) segun la modificacion

            /*if(soloLectura)
             * {
             *      this.SetearSoloLectura();
             * }*/

            //Muestro o no el check de Tarifario General dependiendo del tipo de tarifario cliente o agencia
            tariFlete = (ITarifarioFlete)Session["tarifario"];
            if (tariFlete.TipoTarifario == NegociosSisPackInterface.SisPack.TipoTarifario.Cliente || tipoTarifario == "Cliente" || tariFlete.TipoTarifario == NegociosSisPackInterface.SisPack.TipoTarifario.ClienteEstandarizado || tipoTarifario == "ClienteEstandarizado")
            {
                this.chkTarifarioGeneral.Visible = false;
                this.lblEsTarifarioGral.Visible  = false;
            }
            AsignarNombrePagina();
        }
Beispiel #2
0
        private void CalcularImportes()
        {
            bool esValido = true;

            RequiredFieldValidator reqUnidadVenta = (RequiredFieldValidator)this.phValidUnidadVenta.FindControl("validUVenta");

            reqUnidadVenta.Enabled = true;
            reqUnidadVenta.Validate();
            if (!reqUnidadVenta.IsValid)
            {
                esValido = false;
            }

            RequiredFieldValidator reqME = (RequiredFieldValidator)this.phValidModalidadEntrega.FindControl("validME");

            reqME.Enabled = true;
            reqME.Validate();
            if (!reqME.IsValid)
            {
                esValido = false;
            }

            RequiredFieldValidator reqBultos = (RequiredFieldValidator)this.phValidBultos.FindControl("validBultos");

            reqBultos.Enabled = true;
            reqBultos.Validate();
            if (!reqBultos.IsValid)
            {
                esValido = false;
            }

            RequiredFieldValidator reqPeso = (RequiredFieldValidator)this.phValidPeso.FindControl("validPeso");

            reqPeso.Enabled = true;
            reqPeso.Validate();
            if (!reqPeso.IsValid)
            {
                esValido = false;
            }

            RequiredFieldValidator reqValorDeclarado = (RequiredFieldValidator)this.phValidUnidadVenta.FindControl("validDeclarado");

            reqValorDeclarado.Enabled = true;
            reqValorDeclarado.Validate();
            if (!reqValorDeclarado.IsValid)
            {
                esValido = false;
            }

            if (esValido)
            {
                double pesoAf   = (this.txtPesoTotalAforado.Text == "") ? 0 : Convert.ToDouble(this.txtPesoTotalAforado.Text);
                double pesoReal = (this.txtPeso.Text == "") ? 0 : Convert.ToDouble(this.txtPeso.Text);

                //Crear instancia de la que resuelve los calculos de los importes

                //Cargar los datos necesarios para calcular el importe del flete
                admGuiaO.PesoKgReal = pesoReal;
                if (this.txtAlto.Text != "" && this.txtAncho.Text != "" && this.txtLargo.Text != "")
                {
                    admGuiaO.VolumenTotal = Convert.ToDouble(this.txtAlto.Text) * Convert.ToDouble(this.txtAncho.Text) * Convert.ToDouble(this.txtLargo.Text);
                }

                double pesoAfM3 = 0;

                /*SFE: 22/03/2013. Valor de conversion a M3. Si se ingresa un valor en el campo de conversion, hay que calcular en base a esto*/
                if (txtM3.Text.Length > 0 && txtM3.Text.Trim() != string.Empty && txtM3.Text != "0")
                {
                    double valorConversionM3 = 0;

                    //Si es cliente corporativo, buscar el parametro para el convenio y la unidad de venta.
                    if (admGuiaO.ClienteCorpRemitente.ClienteID != 0 || (admGuiaO.ClienteCorpDestinatario.ClienteID != 0 && admGuiaO.AgenteGuiaPagoID == NegociosSisPackInterface.SisPack.TipoAgenteGuia.Destinatario))
                    {
                        admGuiaO.UnidadVentaID = Utiles.Validaciones.obtieneEntero(Request.Form[ddlUnidadVenta.UniqueID]);
                        valorConversionM3      = admGuiaO.ObtenerValorConversionM3ClienteCorp();
                        //Si no está definido, buscar el parámetro por Unidad de Venta.
                        if (valorConversionM3 == 0)
                        {
                            // Busco la Unidad de Venta y consulto si tiene definido un valor de conversion m3
                            int          uniVenta = Utiles.Validaciones.obtieneEntero(Request.Form[ddlUnidadVenta.UniqueID]);
                            IUnidadVenta uVenta   = UnidadVentaFactory.GetUnidadVenta();
                            uVenta.UnidadVentaID = uniVenta;
                            uVenta.Consultar();

                            if (uVenta.ValorConversionM3 != 0) //tiene definido un valor de conversion de m3, usarlos
                            {
                                valorConversionM3 = uVenta.ValorConversionM3;
                            }
                            else // si no esta definido a nivel de Unidad de Venta tengo que utilizar el de parámetro general
                            {
                                IParametroUNegocio paramMin = ParametroUNegocioFactory.GetParametroUNegocio();
                                paramMin.UnidadNegocioID = this.UnidadNegocioID;
                                paramMin.Parametro       = NegociosSisPackInterface.SisPack.Parametro.ValorConversionM3;
                                paramMin.Consultar();
                                valorConversionM3 = Convert.ToDouble(paramMin.ValorString);
                            }
                        }
                    }

                    //Si se encontró algun valor de conversion.
                    if (valorConversionM3 > 0)
                    {
                        admGuiaO.MetrosCubicos = Utiles.Validaciones.obtieneDouble(txtM3.Text);
                        pesoAfM3 = admGuiaO.MetrosCubicos * valorConversionM3;
                    }
                }

                double pesoTotalAforado = (pesoAf > pesoReal) ? pesoAf : pesoReal;
                if (pesoAfM3 > 0)
                {
                    if (pesoTotalAforado > pesoAfM3)
                    {
                        admGuiaO.PesoTotal = pesoTotalAforado;
                    }
                    else
                    {
                        admGuiaO.PesoTotal = pesoAfM3;
                    }
                }
                else
                {
                    admGuiaO.PesoTotal = (pesoAf > pesoReal) ? pesoAf : pesoReal;
                }

                admGuiaO.CantBultos = Convert.ToInt32(this.txtBultos.Text);

                admGuiaO.UnidadVentaID      = Utiles.Validaciones.obtieneEntero(Request.Form[ddlUnidadVenta.UniqueID]);
                admGuiaO.ModalidadEntregaID = Utiles.Validaciones.obtieneEntero(Request.Form[ddlModalidadEntrega.UniqueID]);

                admGuiaO.LimiteKg = 3000;
                admGuiaO.PorcentajeBonificacionAutorizacion = 0;
                admGuiaO.ImporteACobrarAutorizacion         = 0;

                admGuiaO.ValorDeclarado = Convert.ToDouble(this.txtValorDeclarado.Text);

                int modalidadEntregaID = Utiles.Validaciones.obtieneEntero(this.ddlModalidadEntrega.SelectedValue);

                //admGuiaO.UnidadNegocioID = this.UnidadNegocioID;
                IAgencia agencia = AgenciaFactory.GetAgencia();
                agencia.AgenciaByLocalidadSimulador(Utiles.Validaciones.obtieneEntero(ddlLocalidadRemitente), Utiles.Validaciones.obtieneEntero(ddlCodigoPostalRemitente), 1, 0, Utiles.Validaciones.obtieneEntero(this.ddlUnidadVenta.SelectedValue), modalidadEntregaID, 0, true);
                if (agencia.AgenciaID != 0)
                {
                    admGuiaO.AgenciaOrigenID = agencia.AgenciaID;
                }
                else
                {
                    throw new Exception("No es posible realizar el envío desde el origen seleccionado.");
                }


                agencia.AgenciaByLocalidadSimulador(Utiles.Validaciones.obtieneEntero(ddlLocalidadDestinatario), Utiles.Validaciones.obtieneEntero(ddlCodigoPostalDestinatario), 0, 1, Utiles.Validaciones.obtieneEntero(this.ddlUnidadVenta.SelectedValue), modalidadEntregaID, 0, true);
                if (agencia.AgenciaID != 0)
                {
                    admGuiaO.AgenciaDestinoID = agencia.AgenciaID;
                }
                else
                {
                    throw new Exception("No es posible realizar el envío hacia el destino seleccionado.");
                }

                int agenciaDestino = admGuiaO.AgenciaDestinoID;
                if (agenciaDestino > 0)
                {
                    admGuiaO.TipoDestinoID    = (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Agencia;
                    admGuiaO.AgenciaDestinoID = agenciaDestino;
                }
                else if (agenciaDestino < 0)
                {
                    admGuiaO.TipoDestinoID    = (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.PuntoRecepcion;
                    admGuiaO.AgenciaDestinoID = agenciaDestino * -1;
                }

                //Por si hay que calcular comision de contrareembolso
                admGuiaO.ImporteCRGuia = 0;//(this.txtImporteContraReembolso.Text== "")? 0 : Convert.ToDouble(this.txtImporteContraReembolso.Text);
                //admGuiaO.ImporteCRGuia = admGuiaO.ValorDeclarado;

                admGuiaO.PagaEntregaEnDomicilio        = false;//this.chkPagaEnDomicilio.Checked;
                admGuiaO.PromocionServicioTransporteID = 0;

                admGuiaO.BonificacionAgencia = 0; //Utiles.Validaciones.obtieneEntero(this.txtBonificacionAgencia.Text);
                admGuiaO.UsuarioID           = 1; //this.usuario.UsuarioID;

                //esto le indica a AdminstracionGuias, que la agencia que calcula los importes
                //es automatizada, por lo tanto debe tener en cuenta el área de influencia
                admGuiaO.NoAutomatizada                 = false;
                admGuiaO.UnidadNegocioID                = 1;
                admGuiaO.ClienteCorp.ClienteID          = ClienteFacturacion1.ClienteCorporativoID ?? 0;
                admGuiaO.ClienteCorpRemitente.ClienteID = ClienteFacturacion1.ClienteCorporativoID ?? 0;
                admGuiaO.ClienteCorpRemitente.Nombre    = "";
                admGuiaO.ClienteCorpRemitente.DomicilioComercial.Localidad.LocalidadID        = Utiles.Validaciones.obtieneEntero(ddlLocalidadRemitente);
                admGuiaO.ClienteCorpRemitente.DomicilioGuia.Localidad.CodigoPostal            = CodPostalRemitente;
                admGuiaO.ClienteCorpRemitente.DomicilioGuia.Localidad.LocalidadID             = Utiles.Validaciones.obtieneEntero(ddlLocalidadRemitente);
                admGuiaO.ClienteCorpRemitente.DomicilioGuia.OCodigoPostal.CodigoPostalID      = Utiles.Validaciones.obtieneEntero(ddlCodigoPostalRemitente);
                admGuiaO.ClienteCorpRemitente.DomicilioComercial.OCodigoPostal.CodigoPostalID = Utiles.Validaciones.obtieneEntero(ddlCodigoPostalRemitente);

                admGuiaO.ClienteCorpDestinatario.ClienteID = ClienteFacturacion1.ClienteCorporativoID ?? 0;
                admGuiaO.ClienteCorpDestinatario.DomicilioComercial.Localidad.LocalidadID        = Utiles.Validaciones.obtieneEntero(ddlLocalidadDestinatario);
                admGuiaO.ClienteCorpDestinatario.DomicilioGuia.Localidad.CodigoPostal            = CodPostalDestinatario;
                admGuiaO.ClienteCorpDestinatario.DomicilioGuia.Localidad.LocalidadID             = Utiles.Validaciones.obtieneEntero(ddlLocalidadDestinatario);
                admGuiaO.ClienteCorpDestinatario.DomicilioGuia.OCodigoPostal.CodigoPostalID      = Utiles.Validaciones.obtieneEntero(ddlCodigoPostalDestinatario);
                admGuiaO.ClienteCorpDestinatario.DomicilioComercial.OCodigoPostal.CodigoPostalID = Utiles.Validaciones.obtieneEntero(ddlCodigoPostalDestinatario);
                admGuiaO.ClienteCorpDestinatario.Nombre = "";

                admGuiaO.RemiEsCorporativo = true;
                admGuiaO.DestEsCorporativo = true;
                admGuiaO.AgentePagoEsClienteCorporativo = true;
                admGuiaO.CalcularImportes();

                if (admGuiaO.TipoGuia == "A" || admGuiaO.TipoGuia == "E")
                {
                    this.lblImporteFlete.Text  = Formatos.Importe(admGuiaO.ImporteFlete);
                    this.lblImporteSeguro.Text = Formatos.Importe(admGuiaO.ImporteSeguro);
                    this.lblImporteRetiro.Text = Formatos.Importe(admGuiaO.ImporteRetiro);
                    //if(!this.chkPagaEnDomicilio.Checked)
                    this.lblImporteEntrega.Text = Formatos.Importe(admGuiaO.ImporteEntrega);
                    //else
                    //	this.lblImporteEntrega.Text = "0";
                    this.lblImporteComisCR.Text      = Formatos.Importe(admGuiaO.ImporteComisCR);
                    this.lblImporteNeto.Text         = Formatos.Importe(admGuiaO.ImporteNetoTotal);
                    this.lblImporteIVAInscripto.Text = Formatos.Importe(admGuiaO.ImporteIVAInscripto);
                    //}
                }
                else
                {
                    this.lblImporteFlete.Text  = Formatos.Importe(admGuiaO.ImporteFlete + admGuiaO.ImporteFleteIVA); //+ admGuiaO.ImporteRedespachoIVA
                    this.lblImporteSeguro.Text = Formatos.Importe(admGuiaO.ImporteSeguro + admGuiaO.ImporteSeguroIVA);
                    this.lblImporteRetiro.Text = Formatos.Importe(admGuiaO.ImporteRetiro + admGuiaO.ImporteRetiroIVA);
                    //if(!this.chkPagaEnDomicilio.Checked)
                    this.lblImporteEntrega.Text = Formatos.Importe(admGuiaO.ImporteEntrega + admGuiaO.ImporteEntregaIVA);
                    //else
                    //	this.lblImporteEntrega.Text = "0";
                    this.lblImporteComisCR.Text      = Formatos.Importe(admGuiaO.ImporteComisCR + admGuiaO.ImporteComisCRIVA);
                    this.lblImporteIVAInscripto.Text = "";
                    this.lblImporteNeto.Text         = "";
                    //}
                }

                if (admGuiaO.TarifarioClienteFleteID > 0)
                {
                    ITarifarioClienteFlete tari = TarifarioClienteFleteFactory.GetTarifarioClienteFlete();
                    tari.TarifarioClienteFleteID = admGuiaO.TarifarioClienteFleteID;
                    tari.Consultar();
                    this.txtTarifarioFlete.Text = tari.TarifarioClienteFleteDescrip;
                }
                else if (admGuiaO.TarifarioFleteID > 0)
                {
                    ITarifarioFlete tari = TarifarioFleteFactory.GetTarifarioFlete();
                    tari.TarifarioFleteID = admGuiaO.TarifarioFleteID;
                    tari.Consultar();
                    this.txtTarifarioFlete.Text = tari.TarifarioFleteDescrip;
                }
                else if (admGuiaO.TarifarioVentaRedespachoID > 0)
                {
                    ITarifario tari = TarifarioReDespachoFactory.GetTarifarioRedespacho("V");
                    tari.TarifarioID = admGuiaO.TarifarioVentaRedespachoID;
                    tari.Consultar();
                    this.txtTarifarioFlete.Text = tari.TarifarioDescrip;
                }

                if (admGuiaO.TarifarioClienteRetiroID > 0)
                {
                    ITarifario tariRetiro = TarifarioFactory.GetTarifario("CRE");
                    tariRetiro.TarifarioID = admGuiaO.TarifarioClienteRetiroID;
                    tariRetiro.Consultar();
                    this.txtTarifarioRetiro.Text = tariRetiro.TarifarioDescrip;
                }
                else if (admGuiaO.TarifarioRetiroID > 0)
                {
                    ITarifario tariRetiro = TarifarioFactory.GetTarifario("RE");
                    tariRetiro.TarifarioID = admGuiaO.TarifarioRetiroID;
                    tariRetiro.Consultar();
                    this.txtTarifarioRetiro.Text = tariRetiro.TarifarioDescrip;
                }

                if (admGuiaO.TarifarioClienteEntregaID > 0)
                {
                    ITarifario tariEntrega = TarifarioFactory.GetTarifario("CRE");
                    tariEntrega.TarifarioID = admGuiaO.TarifarioClienteEntregaID;
                    tariEntrega.Consultar();
                    this.txtTarifarioEntrega.Text = tariEntrega.TarifarioDescrip;
                }
                else if (admGuiaO.TarifarioEntregaID > 0)
                {
                    ITarifario tariRetiro = TarifarioFactory.GetTarifario("RE");
                    tariRetiro.TarifarioID = admGuiaO.TarifarioEntregaID;
                    tariRetiro.Consultar();
                    this.txtTarifarioEntrega.Text = tariRetiro.TarifarioDescrip;
                }

                this.lblImporteRedondeo.Text    = Formatos.Importe(admGuiaO.ImporteRedondeo);
                this.lblImporteTotalCobrar.Text = Formatos.Importe(admGuiaO.ImporteTotalCobrar);
            }
        }