Beispiel #1
0
        /// <summary>
        /// Procedimiento para cargar las listas
        /// </summary>
        private void LlenarListas()
        {
            // Cargo los clientes
            //LlenarCombos.Clientes(lstClientes, UnidadNegocioID);
            ICliente oCliente = ClienteFactory.GetCliente();

            lstClientes.DataSource     = oCliente.GetClientesConsultaDataSet().Datos.Select("", "RazonSocial");
            lstClientes.DataValueField = "ClienteID";
            lstClientes.DataTextField  = "RazonSocial";
            lstClientes.DataBind();
            // Cargo las unidades de venta
            LlenarCombos.UnidadesVenta(lstUnidadVenta);
            // Cargo los tarifarios de fletes
            ITarifarioFlete   tarifarioFlete     = TarifarioFleteFactory.GetTarifarioFlete();
            DsTarifariosFlete dsTarifariosFletes = tarifarioFlete.GetTarifariosFleteDataSet();

            lstTarifariosDeFletes.DataSource     = dsTarifariosFletes.Datos;
            lstTarifariosDeFletes.DataValueField = "TarifarioFleteID";
            lstTarifariosDeFletes.DataTextField  = "TarifarioFleteDescrip";
            lstTarifariosDeFletes.DataBind();
            // Cargo los tarifarios de retiro/entrega
            ITarifario tarifarioRetiroEntrega = TarifarioFactory.GetTarifario("");
            DsTarifarioClienteRetiroEntrega dsTarifarioRetiroEntrega = (DsTarifarioClienteRetiroEntrega)tarifarioRetiroEntrega.GetTarifariosDataSet();

            lstTarifariosRetiroEntrega.DataSource     = dsTarifarioRetiroEntrega.Datos;
            lstTarifariosRetiroEntrega.DataValueField = "TarifarioClienteRetiroEntregaID";
            lstTarifariosRetiroEntrega.DataTextField  = "TarifarioClienteRetiroEntregaDescrip";
            lstTarifariosRetiroEntrega.DataBind();
        }
Beispiel #2
0
        private void butAprobarTarifarios_Click(object sender, System.EventArgs e)
        {
            string mensaje = "";

            foreach (DataGridItem item in dtgTarifarios.Items)
            {
                if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
                {
                    if (((CheckBox)item.FindControl("chkTarifario")).Checked)
                    {
                        ITarifario oTarifario = TarifarioFactory.GetTarifario("CRE");
                        oTarifario.TarifarioID = Convert.ToInt32(dtgTarifarios.DataKeys[item.DataSetIndex]);
                        string mje = oTarifario.ValidarTarifario();
                        if (mje != "")
                        {
                            string nombre = (((Label)item.FindControl("lblDescripcion")).Text);
                            mensaje += "Tarifario " + nombre + ": " + mje + "<BR>";
                        }
                    }
                }
            }
            if (mensaje != "")
            {
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(mensaje);
            }
            this.BindGrid(0);
        }
        void BindGrid(int currentPage)
        {
            //Llenar grilla
            SisPackController.AdministrarGrillas.Configurar(dtgTarifarios, "TarifarioRetiroEntregaID", this.CantidadOpciones);

            ITarifario oTarifario        = TarifarioFactory.GetTarifario("RE");
            DsTarifariosRetiroEntrega ds = (DsTarifariosRetiroEntrega)oTarifario.GetTarifariosDataSet();

            if (ddlValorizacion.SelectedIndex > 0)
            {
                dtgTarifarios.DataSource = (DsTarifariosRetiroEntrega.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND ValorizacionTarifarioID = " + Convert.ToInt32(this.ddlValorizacion.SelectedValue) + " AND TarifarioRetiroEntregaDescrip LIKE " + "'" + this.txtTarifarioDescrip.Text + "%'" + " AND EsTarifarioGeneral = 0" + " AND EstadoTarifarioID=5 ", "TarifarioRetiroEntregaDescrip");
            }
            else
            {
                dtgTarifarios.DataSource = (DsTarifariosRetiroEntrega.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND TarifarioRetiroEntregaDescrip LIKE " + "'" + this.txtTarifarioDescrip.Text + "%'" + " AND EsTarifarioGeneral = 0" + " AND EstadoTarifarioID=5 ", "TarifarioRetiroEntregaDescrip");
            }

            dtgTarifarios.CurrentPageIndex = currentPage;
            dtgTarifarios.DataBind();
        }
        private void dtgTarifariosCliente_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            if (e.CommandName == "Asignar")
            {
                int IDTarifActual = Convert.ToInt32(dtgTarifariosCliente.DataKeys[(int)e.Item.ItemIndex]);

                ITarifario tarifario = TarifarioFactory.GetTarifario("CRE");
                tarifario.TarifarioID = IDTarifActual;
                tarifario.Consultar();
                tarifarioDescrip = tarifario.TarifarioDescrip;
                TarifarioID      = IDTarifActual;
                AgenciaID        = Utiles.Validaciones.obtieneEntero(busqAgencia.AgenciaID);
                //AgenciaRTID = Utiles.Validaciones.obtieneEntero(busqAgencia1.AgenciaID);

                StringBuilder scriptString = new StringBuilder();
                scriptString.Append("<script language='javascript'>\n");
                scriptString.Append("DatosRegistrados();\n");
                scriptString.Append("</script>");
                Page.RegisterClientScriptBlock("scriptTarifario", scriptString.ToString());
            }
        }
Beispiel #5
0
        private void BindGrid()
        {
            DsClientes ds = null;

            SisPackController.AdministrarGrillas.Configurar(this.dtgClientes, "ClienteID", this.CantidadOpciones);

            if (this.txtTipoTarifario.Text == "Cliente")
            {
                ITarifarioFlete tarifarioFlete = TarifarioFleteFactory.GetTarifarioFlete();
                tarifarioFlete.TarifarioFleteID = Convert.ToInt32(this.txtTarifarioID.Text);
                ds = tarifarioFlete.GetClientesByTarifarioID();
                this.dtgClientes.DataSource = ds;
                this.dtgClientes.DataBind();
            }
            else if (this.txtTipoTarifario.Text == "ClienteParticularesEspecificos")
            {
                ITarifarioClienteFlete tarifarioClienteFlete = TarifarioClienteFleteFactory.GetTarifarioClienteFlete();
                tarifarioClienteFlete.TarifarioClienteFleteID = Convert.ToInt32(this.txtTarifarioID.Text);
                ds = tarifarioClienteFlete.GetClientesByTarifarioID();
                this.dtgClientes.DataSource = ds;
                this.dtgClientes.DataBind();
            }
            else if (this.txtTipoTarifario.Text == "ClienteRetiroEntrega")
            {
                ITarifario tarifarioClienteRetiroEntrega = TarifarioFactory.GetTarifario("CRE");
                tarifarioClienteRetiroEntrega.TarifarioID = Convert.ToInt32(this.txtTarifarioID.Text);
                ds = (DsClientes)tarifarioClienteRetiroEntrega.GetClientesByTarifarioID();
                this.dtgClientes.DataSource = ds;
                this.dtgClientes.DataBind();
            }
            else if (txtTipoTarifario.Text == "VentaReDespacho")
            {
                ITarifario tarifarioReDespacho = TarifarioReDespachoFactory.GetTarifarioRedespacho("V");
                tarifarioReDespacho.TarifarioID = Utiles.Validaciones.obtieneEntero(txtTarifarioID.Text);
                ds = (DsClientes)tarifarioReDespacho.GetClientesByTarifarioID();
                dtgClientes.DataSource = ds.Datos;
                dtgClientes.DataBind();
            }
        }
Beispiel #6
0
        /// <summary>
        /// Procedimiento para cargar los tarifarios de retiro / entrega
        /// </summary>
        private void BindGridTarifarioRetiroEntrega()
        {
            // Reviso si los datos estan cargados en memoria
            DsReporteTarifariosClientes dsTarifariosRetiroEntregaCliente;

            if (Session["dsTarifariosRetiroEntregaCliente"] == null)
            {
                // Los datos no estan cargados en memoria. Cargo los filtros
                string clientesSeleccionados                = ObtenerClientesSeleccionados();
                string unidadesVentasSeleccionadas          = ObtenerUnidadesVentasSeleccionadas();
                string TarifariosRetiroEntregaSeleccionados = ObtenerTarifariosRetiroEntregaSeleccionados();
                int    verDatosHistoricos = 0;
                if (chkVerDatosHistoricos.Checked)
                {
                    verDatosHistoricos = 1;
                }
                System.DateTime fechaHasta = this.txtFechaHasta.Text.Equals("") ? Convert.ToDateTime("01/01/1900") : Convert.ToDateTime(this.txtFechaHasta.Text);
                int             cantDias   = this.txtCantDias.Text.Equals("") ? 0 : Convert.ToInt32(this.txtCantDias.Text);
                // Obtengo los datos
                ITarifario tarifario = TarifarioFactory.GetTarifario("");
                dsTarifariosRetiroEntregaCliente = tarifario.ObtenerTarifariosCliente(clientesSeleccionados, unidadesVentasSeleccionadas, TarifariosRetiroEntregaSeleccionados, verDatosHistoricos, fechaHasta, cantDias);
                // Guardo los datos en memoria
                Session["dsTarifariosRetiroEntregaCliente"] = dsTarifariosRetiroEntregaCliente;
            }
            else
            {
                // Los datos estan cargados en memoria
                dsTarifariosRetiroEntregaCliente = (DsReporteTarifariosClientes)Session["dsTarifariosRetiroEntregaCliente"];
            }
            // Configuro las grillas
            SisPackController.AdministrarGrillas.Configurar(dtgTarifarioRetiro, "ClienteId", 30);
            SisPackController.AdministrarGrillas.Configurar(dtgTarifarioEntrega, "ClienteId", 30);
            // Cargo los tarifarios de retiro
            dtgTarifarioRetiro.DataSource = dsTarifariosRetiroEntregaCliente.TarifariosRetiroEntrega.Select("OrigenFleteDescrip <> ''", "UnidadVentaDescrip");
            dtgTarifarioRetiro.DataBind();
            // Cargo los tarifarios de entrega
            dtgTarifarioEntrega.DataSource = dsTarifariosRetiroEntregaCliente.TarifariosRetiroEntrega.Select("DestinoFleteDescrip <> ''", "UnidadVentaDescrip");
            dtgTarifarioEntrega.DataBind();
        }
        protected void dtgTarifarios_Delete(Object sender, DataGridCommandEventArgs e)
        {
            ITarifario oTarifa = TarifarioFactory.GetTarifario("CRE");

            oTarifa.TarifarioID = Convert.ToInt32(dtgTarifarios.DataKeys[(int)e.Item.ItemIndex]);

            // Obtenemos el usuario que ejecuta la acción.
            IUsuarios usuarioConectado = UsuariosFactory.GetUsuario();

            usuarioConectado.Login = this.UsuarioConectadoID;
            usuarioConectado.ConsultarByLogin();

            try
            {
                if (oTarifa.Eliminar(usuarioConectado.UsuarioID))
                {
                    BindGrid(0);
                }
            }
            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);
            }
        }
Beispiel #8
0
        private void Page_Load(object sender, System.EventArgs e)
        {
            Page.RegisterStartupScript("init", SisPackController.GenerarJavaScripts.SetearFocoControl(this.txtTarifarioDescrip.ClientID));
            if (this.Request.QueryString["Modal"] != null)
            {
                modal = (this.Request.QueryString["Modal"] == "S");
            }
            else
            {
                modal = false;
            }
            if (!modal)
            {
                this.LoadUCMenu();
            }

            if (!IsPostBack)
            {
                Session["ConvenioCliente"] = null;
                //Aca debo recuperar la instancia de lo que me pasan de la otra pagina, que es: CotizacionClienteUVentaModalidadOrigenDestino

                Session["tarifario"] = null;
                tari = TarifarioFactory.GetTarifario(this.Request.QueryString["Tipo"]);
                if (this.Request.QueryString["Tipo"] == "CRE")
                {
                    this.chkTarifarioGeneral.Attributes.Add("Style", "Display: none");
                    this.lblEsTarifarioGral.Attributes.Add("Style", "Display: none");
                }
                if (this.Request.QueryString["TarifarioID"] != null)
                {
                    this.txtTarifarioID.Text = this.Request.QueryString["TarifarioID"];
                    tari.TarifarioID         = Convert.ToInt32(Request.QueryString["TarifarioID"]);
                    //Consultar Tarifario, donde del txt recupera el ID y setea los valores.
                    tari.Consultar();
                }
                else
                {
                    this.tblTarifarioRef.Attributes.Add("Style", "Display: none");
                    this.tblVariacion.Attributes.Add("Style", "Display: none");
                }
                Session["tarifario"] = tari;
                if (tari.TarifarioID != 0)
                {
                    this.ConsultarTarifario();
                }

                this.CargarCombos();
            }
            this.SetearValidadores();


            //Desde aqui:Esto es provisorio para desabilitar los tarifarios referencia y dejar solo lectura el tarifario general
            this.ddlTarifarioReferencia.Enabled = false;

            if (Session["tarifario"] != null)
            {
                tari = (ITarifario)Session["tarifario"];
            }
            else
            {
                tari = TarifarioFactory.GetTarifario(this.Request.QueryString["Tipo"]);
            }

            if (tari.TarifarioRefID != 0)
            {
                butGuardarTarifario.Attributes.Add("onclick", "return confirm('Si ha modificado la variación, se recalcularán los importes. Desea continuar?')");
            }

            if (tari.TieneTarifariosDerivados())
            {
                //VER.Si tiene tarifarios derivados y NO hay un tarifario gral.
                //Quizas sí habilitar el check de tarifario general.
                this.txtTarifarioDescrip.ReadOnly         = true;
                this.txtImporteKgExcedente.ReadOnly       = true;
                this.txtImporteMinValorDeclarado.ReadOnly = true;
                soloLectura = true;
            }
            else
            {
                soloLectura = false;
            }


            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();
            /*SFE Mostrar Kg Excedente o Bulto Excedente dependiendo del tipo de Valorizacion del Tarifario*/
            RegistrarCambioBultoVariable();
            ddlValorizacion.Attributes.Add("onchange", "MostrarImporteMinimo();MostrarTextoBultoVariable();");

            tari = (ITarifario)Session["tarifario"];
            if (tari.TarifarioID != 0)
            {
                this.LoadUCTopes();
            }

            this.SetLecturaUC();

            this.tblTarifarioRef.Attributes.Add("Style", "Display: none");
            this.tblVariacion.Attributes.Add("Style", "Display: none");


            if (tari.HayTarifarioGeneral() || tari.TarifarioRefID != 0)
            {
                chkTarifarioGeneral.Enabled = false;
            }
            this.MostrarTablas();
        }
Beispiel #9
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);
            }
        }
        private void hgLocalidadesCodigoPostal_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            try
            {
                AgenciaCodigoPostalID = e.Item.Cells[1].Text;
                string agenciaRetiroID           = e.Item.Cells[2].Text;
                string agenciaDomicilioID        = e.Item.Cells[4].Text;
                string tarifarioRetiroEntregaID  = e.Item.Cells[6].Text;
                string puntoRecepcionTerminalID  = e.Item.Cells[8].Text;
                string puntoRecepcionDomicilioID = e.Item.Cells[9].Text;
                string agenciaReferenciaID       = e.Item.Cells[10].Text;

                //this.busqAgenciaRetiro.Sucursal = "";
                //this.busqAgenciaRetiro.RazonSocial = "";
                //this.busqAgenciaRetiro.AgenciaID = "";
                //this.busqAgenciaDomicilio.Sucursal = "";
                //this.busqAgenciaDomicilio.RazonSocial = "";
                //this.busqAgenciaDomicilio.AgenciaID = "";

                if (agenciaRetiroID != "&nbsp;" && agenciaRetiroID != "0")
                {
                    this.busqAgenciaRetiro.AgenciaID = agenciaRetiroID;

                    IAgencia ar = AgenciaFactory.GetAgencia();
                    ar.AgenciaID = Utiles.Validaciones.obtieneEntero(agenciaRetiroID);
                    ar.Consultar();
                    this.busqAgenciaRetiro.Sucursal    = ar.SucursalDGI;
                    this.busqAgenciaRetiro.RazonSocial = ar.RazonSocial;
                }
                else
                {
                    this.busqAgenciaRetiro.AgenciaID = Convert.ToString(Utiles.Validaciones.obtieneEntero(puntoRecepcionTerminalID) * -1);

                    IPuntoRecepcion pr = PuntoRecepcionFactory.GetPuntoRecepcion();
                    pr.PuntoRecepcionID = Utiles.Validaciones.obtieneEntero(puntoRecepcionTerminalID);
                    pr.Consultar();
                    this.busqAgenciaRetiro.Sucursal    = pr.Codigo;
                    this.busqAgenciaRetiro.RazonSocial = pr.RazonSocial;
                }

                if (agenciaDomicilioID != "&nbsp;" && agenciaDomicilioID != "0")
                {
                    this.busqAgenciaDomicilio.AgenciaID = agenciaDomicilioID;

                    IAgencia ad = AgenciaFactory.GetAgencia();
                    ad.AgenciaID = Utiles.Validaciones.obtieneEntero(agenciaDomicilioID);
                    ad.Consultar();
                    this.busqAgenciaDomicilio.Sucursal    = ad.SucursalDGI;
                    this.busqAgenciaDomicilio.RazonSocial = ad.RazonSocial;
                }
                else
                {
                    this.busqAgenciaDomicilio.AgenciaID = Convert.ToString(Utiles.Validaciones.obtieneEntero(puntoRecepcionDomicilioID) * -1);

                    IPuntoRecepcion prd = PuntoRecepcionFactory.GetPuntoRecepcion();
                    prd.PuntoRecepcionID = Utiles.Validaciones.obtieneEntero(puntoRecepcionDomicilioID);
                    prd.Consultar();
                    this.busqAgenciaDomicilio.Sucursal    = prd.Codigo;
                    this.busqAgenciaDomicilio.RazonSocial = prd.RazonSocial;
                }

                /*Diego Agencia referencia de tarifa*/
                //if (agenciaReferenciaID != "&nbsp;" && agenciaReferenciaID != "0")
                //{
                //    this.busqAgenciaReferencia.AgenciaID = agenciaReferenciaID;

                //    IAgencia ad = AgenciaFactory.GetAgencia();
                //    ad.AgenciaID = Utiles.Validaciones.obtieneEntero(agenciaReferenciaID);
                //    ad.Consultar();
                //    this.busqAgenciaReferencia.Sucursal = ad.SucursalDGI;
                //    this.busqAgenciaReferencia.RazonSocial = ad.RazonSocial;
                //}

                this.txtTarifarioRetiroEntregaID.Text = tarifarioRetiroEntregaID;

                ITarifario oTarifario = TarifarioFactory.GetTarifario("RE");
                oTarifario.TarifarioID = Utiles.Validaciones.obtieneEntero(tarifarioRetiroEntregaID);
                oTarifario.Consultar();
                this.txtTarifarioRetiroEntrega.Text = oTarifario.TarifarioDescrip;

                IUnidadVentaAgenciaCodigoPostal unidadVenta = UnidadVentaAgenciaCodigoPostalFactory.GetUnidadVentaAgenciaCodigoPostalFactory();
                unidadVenta.AgenciaCodigoPostalID = Utiles.Validaciones.obtieneEntero(AgenciaCodigoPostalID);
                DsUVentaAgenciaCodigoPostal ds = unidadVenta.GetUnidadesVentaAgenciasCodigoPostal();

                if (ds.Datos.Rows[0]["CategoriaUVentaID"].ToString() == string.Empty)
                {
                    chkCambioUnVta.Checked = false;
                    SisPackController.LlenarCombos.UnidadesVenta(this.lstUnidadesVenta);
                }
                else
                {
                    chkCambioUnVta.Checked = true;
                    SisPackController.LlenarCombos.CategoriaUVentaParaCodigosPostales(lstUnidadesVenta);
                }

                /*Primero tengo que deseleccionar los que ya se encuentra seleccionados*/
                for (int j = 0; j <= lstUnidadesVenta.Items.Count - 1; j++)
                {
                    lstUnidadesVenta.Items[j].Selected = false;
                }

                int i = 0;
                for (int j = 0; j <= lstUnidadesVenta.Items.Count - 1; j++)
                {
                    foreach (DsUVentaAgenciaCodigoPostal.DatosRow dr in ds.Datos)
                    {
                        if (dr.IsUnidadVentaIDNull())
                        {
                            if (lstUnidadesVenta.Items[i].Value == dr.CategoriaUVentaID.ToString())
                            {
                                this.lstUnidadesVenta.Items[i].Selected = true;
                            }
                        }
                        else
                        {
                            if (lstUnidadesVenta.Items[i].Value == dr.UnidadVentaID.ToString())
                            {
                                this.lstUnidadesVenta.Items[i].Selected = true;
                            }
                        }
                    }
                    i++;
                }

                BindGridEdit(0, AgenciaCodigoPostalID);
                this.MostrarBotones(true);
            }
            catch (Exception ex)
            {
                ((ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }
        public static bool RecalcularImportesTarifarioTope(ITarifario tariNuevo, string tipo, int usuarioID)
        {
            //if (Clienteflete)
            //else{}
            ITarifario         tariRef  = TarifarioFactory.GetTarifario(tipo);
            ITarifariosTopeCol topesCol = tariNuevo.TopesCol;

            //Solo me interesa consultar los importes del tarifario de referencia
            tariRef.TopesCol.TarifarioID = tariNuevo.TarifarioRefID;
            tariRef.TopesCol.Consultar();


            bool esPorcentaje;

            if (tariNuevo.PorcentajeAjuste != 0)
            {
                esPorcentaje = true;
            }
            else
            {
                esPorcentaje = false;
            }
            //Calculo de importeKgExcedente para tarifario
            if (tariNuevo.FactorAjuste != "")
            {
                if (esPorcentaje)
                {
                    if (tariNuevo.FactorAjuste == "+")
                    {
                        tariNuevo.ImporteKgExcedente = tariRef.ImporteKgExcedente + (tariRef.ImporteKgExcedente * (tariNuevo.PorcentajeAjuste / 100));
                    }
                    else
                    {
                        tariNuevo.ImporteKgExcedente = tariRef.ImporteKgExcedente - (tariRef.ImporteKgExcedente * (tariNuevo.PorcentajeAjuste / 100));
                        if (tariNuevo.ImporteKgExcedente < 0)
                        {
                            tariNuevo.ImporteKgExcedente = 0;
                        }
                    }
                }
                else
                {
                    if (tariNuevo.FactorAjuste == "+")
                    {
                        tariNuevo.ImporteKgExcedente = tariRef.ImporteKgExcedente + tariNuevo.ImporteAjuste;
                    }
                    else
                    {
                        tariNuevo.ImporteKgExcedente = tariRef.ImporteKgExcedente - tariNuevo.ImporteAjuste;
                        if (tariNuevo.ImporteKgExcedente < 0)
                        {
                            tariNuevo.ImporteKgExcedente = 0;
                        }
                    }
                }
            }
            else
            {
                tariNuevo.ImporteKgExcedente = tariRef.ImporteKgExcedente;
            }

            //Iterar por la coleccion de importes de topes y asignar el importe que corresponda.



            for (int i = 0; i < topesCol.getCount(); i++)
            {
                //Recuperar el importe de Kg. Excedente del tope  de referencia
                ITarifarioTope oTope    = topesCol.GetTarifarioTope(i);
                ITarifarioTope oTopeRef = tariRef.TopesCol.GetTarifarioTopeByTopeID(oTope.Tope.TopeID);

                if (tariNuevo.FactorAjuste != "")
                {
                    if (esPorcentaje)
                    {
                        if (tariNuevo.FactorAjuste == "+")
                        {
                            oTope.Importe = oTopeRef.Importe + (oTopeRef.Importe * (tariNuevo.PorcentajeAjuste / 100));
                        }
                        else
                        {
                            oTope.Importe = oTopeRef.Importe - (oTopeRef.Importe * (tariNuevo.PorcentajeAjuste / 100));
                            if (oTope.Importe < 0)
                            {
                                oTope.Importe = 0;
                            }
                        }
                    }
                    else
                    {
                        if (tariNuevo.FactorAjuste == "+")
                        {
                            oTope.Importe = oTopeRef.Importe + tariNuevo.ImporteAjuste;
                        }
                        else
                        {
                            oTope.Importe = oTopeRef.Importe - tariNuevo.ImporteAjuste;
                            if (oTope.Importe < 0)
                            {
                                oTope.Importe = 0;
                            }
                        }
                    }
                }
                else
                {
                    oTope.Importe = oTopeRef.Importe;
                }
            }

            /*try
             * {
             *
             *              return true;
             *      else
             *              return false;
             * }
             * catch(Exception)
             * {
             *      return false;
             * }*/
            //Recalcular los importes del tarifario
            //Recorrer la col de zonastopes. Por cada Zona y tope, recuperar el importe del padre y aplicar
            try
            {
                if (tariNuevo.Guardar(usuarioID))
                {
                    if (tariNuevo.TopesCol.Guardar(usuarioID))
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception)
            {
                return(false);
            }
        }