예제 #1
0
        private void GuardarConcepto(GridViewCommandEventArgs e)
        {
            try
            {
                GridViewRow item         = this.gvConceptosFacturacion2.Rows[this.gvConceptosFacturacion2.EditIndex];
                TextBox     CodigoBarras = (TextBox)item.FindControl("txtCodigoBarrasConcepto");

                //para que valide que el CB ingresado no corresponde a una unidad de venta FQ18/01/2015
                ICodigoBarras cb = CodigoBarrasFactory.GetCodigoBarras();
                if (cb.validaCBProducto(CodigoBarras.Text) > 0)
                {
                    string script = string.Empty;

                    errores.Visible = true;
                    errores.Text    = ("El código de barras " + CodigoBarras.Text + " no es válido para esta sección ya que está vinculado a una Unidad de Venta o Servicio. Debe ingresarlo en la sección de Codigo de Barras");
                    ScriptManager.RegisterClientScriptBlock(this.upd1, upd1.GetType(), "muestraMensaje4", script, true);
                    return;
                }

                /* Obtener los datos de la grilla. */
                dtConceptoFacturacion = (dsConceptoFacturacion.ConceptoDataTable)Session["dtConceptoFacturacion"];

                /* Posicionarse en el registro deseado. */
                dsConceptoFacturacion.ConceptoRow dr;
                dr = (dsConceptoFacturacion.ConceptoRow)dtConceptoFacturacion.Rows[Convert.ToInt32(e.CommandArgument)];

                IConceptoFacturacion conceptoFacturacion = ConceptoFacturacionFactory.GetConceptoFacturacion();
                //conceptoFacturacion.ConceptoFacturacionId = dr.ConceptoFacturacionID;

                DropDownList concepto = (DropDownList)item.FindControl("ddlConceptoFacturacion");
                string       selValue = concepto.SelectedValue;
                dr.ConceptoFacturacionID = selValue == "" ? 0 : Convert.ToInt32(selValue);
                dr.Descripcion           = concepto.SelectedItem.Text.Trim();

                if (dr.ConceptoFacturacionID == 0)
                {
                    string script = string.Empty;
                    script         += "alert('Debe seleccionar un concepto de facturación.');\n";
                    errores.Visible = true;
                    errores.Text    = " El código de barras " + CodigoBarras.Text + " no es válido.";
                    ScriptManager.RegisterClientScriptBlock(this.upd1, upd1.GetType(), "muestraMensaje4", script, true);

                    return;
                }

                ICodigoBarras codigoBarra = CodigoBarrasFactory.GetCodigoBarras();
                if (CodigoBarras.Text.Length > 0 && CodigoBarras.Text != string.Empty)
                {
                    txtClienteIDD.Text = "0";
                    int ClienteCoorporativoID = Convert.ToInt32(txtClienteIDD.Text);
                    // valida que el codigo se haya asignado a la agencia o al cliente
                    if (codigoBarra.ValidarCodigoBarras(CodigoBarras.Text, AgenciaConectadaID, ClienteCoorporativoID) == false)
                    {
                        string script = string.Empty;

                        errores.Visible = true;
                        errores.Text    = " El código de barras " + CodigoBarras.Text + " no es válido.";

                        ScriptManager.RegisterClientScriptBlock(this.upd1, upd1.GetType(), "muestraMensaje4", script, true);
                        return;
                    }

                    // valida que no se ingrese el mismo codigo mas de una vez
                    if ((this.dtConceptoFacturacion.Select("CodigoBarras like '" + CodigoBarras.Text + "'").Length > 0) && CodigoBarras.Text != string.Empty)
                    {
                        string script = string.Empty;

                        errores.Visible = true;
                        errores.Text    = "a se ha ingresado el código de barras " + CodigoBarras.Text + ".";

                        ScriptManager.RegisterClientScriptBlock(this.upd1, upd1.GetType(), "muestraMensaje4", script, true);
                        return;
                    }
                }
                conceptoFacturacion.GetOne(dr.ConceptoFacturacionID);
                TextBox NroPrecinto = (TextBox)item.FindControl("txtNroPrecinto");
                TextBox HorasDias   = (TextBox)item.FindControl("txtHorasDias");

                if (((conceptoFacturacion.RequiereDatosObligatorio ?? false) == true) && (NroPrecinto.Text == string.Empty))
                {
                    string script = string.Empty;
                    // script += "alert('Debe ingresar un número de precinto para el servicio.');\n";

                    //((ErrorWeb)this.phErrores.Controls[0]).setMensaje("Debe ingresar un número de precinto para el servicio.");
                    errores.Visible = true;
                    errores.Text    = "Debe ingresar un número de precinto para el servicio.";

                    ScriptManager.RegisterClientScriptBlock(this.upd1, upd1.GetType(), "muestraMensaje4", script, true);
                    return;
                }


                // Si tiene tarifario por horas o dias, habilitar el textbox de horas/dias
                if (((conceptoFacturacion.TipoTarifarioConceptoFacturableID == (int)NegociosSisPackInterface.SisPack.TipoTarifarioConceptoFacturable.Tarifariosporhoras) || (conceptoFacturacion.TipoTarifarioConceptoFacturableID == (int)NegociosSisPackInterface.SisPack.TipoTarifarioConceptoFacturable.Tarifariospordías)) && (HorasDias.Text == string.Empty))
                {
                    string script = string.Empty;
                    // script += "alert('Debe ingresar la cantidad de horas o días para el servicio.');\n";

                    //  ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("Debe ingresar la cantidad de horas o días para el servicio.");
                    errores.Text = "Debe ingresar la cantidad de horas o días para el servicio.";
                    ScriptManager.RegisterClientScriptBlock(this.upd1, upd1.GetType(), "muestraMensaje4", script, true);
                    return;
                }

                dr.HorasDias    = HorasDias.Text.Trim().Equals("") ? 0 : Utiles.Validaciones.obtieneEntero(HorasDias.Text.Trim());
                dr.NroPrecinto  = NroPrecinto.Text.Trim().Equals("") ? string.Empty : NroPrecinto.Text.Trim();
                dr.CodigoBarras = CodigoBarras.Text.Trim().Equals("") ? string.Empty : CodigoBarras.Text.Trim();
                dtConceptoFacturacion[Convert.ToInt32(e.CommandArgument)].HorasDias                         = dr.HorasDias;
                dtConceptoFacturacion[Convert.ToInt32(e.CommandArgument)].Descripcion                       = dr.Descripcion;
                dtConceptoFacturacion[Convert.ToInt32(e.CommandArgument)].NroPrecinto                       = dr.NroPrecinto;
                dtConceptoFacturacion[Convert.ToInt32(e.CommandArgument)].CodigoBarras                      = dr.CodigoBarras;
                dtConceptoFacturacion[Convert.ToInt32(e.CommandArgument)].ConceptoFacturacionID             = dr.ConceptoFacturacionID;
                dtConceptoFacturacion[Convert.ToInt32(e.CommandArgument)].TipoTarifarioConceptoFacturableID = conceptoFacturacion.TipoTarifarioConceptoFacturableID ?? 0;
                dtConceptoFacturacion[Convert.ToInt32(e.CommandArgument)].RequiereDatosObligatorio          = conceptoFacturacion.RequiereDatosObligatorio ?? false;
                dtConceptoFacturacion[Convert.ToInt32(e.CommandArgument)].EsNuevo = false;

                if (dr.RequiereDatosObligatorio)
                {
                    //Inserto el tipo de bulto Bolsa de seguridad
                    if (ddlTipoBulto.Items.FindByValue("3") == null)
                    {
                        ddlTipoBulto.Items.Add(new ListItem("Bolsa de Seguridad", "3"));
                        ddlTipoBulto.DataBind();
                        ddlTipoBulto.SelectedValue = "3";
                        ddlTipoBulto.Enabled       = false;
                    }
                }

                dr = null;
                conceptoFacturacion = null;

                gvConceptosFacturacion2.EditIndex = -1;
                Session["dtConceptoFacturacion"]  = dtConceptoFacturacion;
                BindGridConceptosFacturacion(gvConceptosFacturacion2.PageIndex);
                butNuevoConcepto.Enabled = true;
                //butIngresoConceptos.Enabled = true;

                errores.Visible = false;
                errores.Text    = "";
            }
            catch (Exception ex)
            {
                string script = string.Empty;
                errores.Visible = true;
                errores.Text    = ex.Message;
                ScriptManager.RegisterClientScriptBlock(this.upd1, upd1.GetType(), "muestraMensaje4", script, true);
                return;
                //                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }
예제 #2
0
        protected void butConfirmar_Click(object sender, System.EventArgs e)
        {
            ICodigoBarras cbc = CodigoBarrasFactory.GetCodigoBarras();

            foreach (GridViewRow item in gvConceptosFacturacion.Rows)
            {
                if (((CheckBox)item.Cells[0].FindControl("chkAsignar")).Checked)
                {
                    string cb = ((TextBox)item.FindControl("txtCodigoBarras")).Text;
                    if (cbc.validaCBProducto(cb) > 0)
                    {
                        string script = string.Empty;
                        script += "alert('El código de barras " + cb + " no es válido para esta sección ya que está vinculado a un Concepto Facturable. Debe ingresarlo en la sección de Conceptos Facturables');\n";
                        ScriptManager.RegisterClientScriptBlock(this.upnlGrilla, upnlGrilla.GetType(), "muestraMensaje1", script, true);
                        return;
                    }
                    ///*Si se marco el concepto, verifico que se haya ingresado una cantidad*/
                    //RequiredFieldValidator rfv = item.FindControl("RequiredtxtCantidad") as RequiredFieldValidator;
                    //rfv.Enabled = true;

                    /*Por cada row voy a verificar si el concepto de facturacion "RequiereDatosObligatorios" (NroPrecinto)*/
                    if (Convert.ToBoolean(item.Cells[2].Text)) // Celda 2: Indica si requiere datos obligatorios. Valido el campo NroPrecinto
                    {
                        RequiredFieldValidator rfv1 = item.FindControl("RequiredtxtNroPrecinto") as RequiredFieldValidator;
                        rfv1.Enabled = true;
                    }

                    /*Por cada row voy a verificar si el concepto de facturacion "RequiereIngresoDias/Horas" (depende del tipotarifario)*/
                    if ((Utiles.Validaciones.obtieneEntero(item.Cells[3].Text) == (int)NegociosSisPackInterface.SisPack.TipoTarifarioConceptoFacturable.Tarifariospordías) || (Utiles.Validaciones.obtieneEntero(item.Cells[3].Text) == (int)NegociosSisPackInterface.SisPack.TipoTarifarioConceptoFacturable.Tarifariosporhoras)) // Celda 2: Indica que requiere ingreso de dias horas por el tarifario.
                    {
                        RequiredFieldValidator rfv2 = item.FindControl("RequiredtxtHorasDias") as RequiredFieldValidator;
                        rfv2.Enabled = true;
                    }

                    if (((TextBox)item.FindControl("txtCodigoBarras")).Text != string.Empty) // Celda 4: Se ingreso un codigo de barras.
                    {
                        ICodigoBarras codigoBarra = CodigoBarrasFactory.GetCodigoBarras();
                        if (codigoBarra.ValidarCodigoBarras(((TextBox)item.FindControl("txtCodigoBarras")).Text, AgenciaID, ClienteID) == false)
                        {
                            string script = string.Empty;
                            script += "alert('El código de barras " + ((TextBox)item.FindControl("txtCodigoBarras")).Text + " no es válido.');\n";

                            ScriptManager.RegisterClientScriptBlock(this.upnlGrilla, upnlGrilla.GetType(), "muestraMensaje1", script, true);
                            return;
                        }
                    }
                }
            }


            /*Valido la pagina*/
            Page.Validate();
            if (!Page.IsValid)
            {
                return;
            }

            dsConceptoFacturacion.ConceptoDataTable dsDetalle = new dsConceptoFacturacion.ConceptoDataTable();

            dsDetalle = new dsConceptoFacturacion.ConceptoDataTable();

            foreach (GridViewRow item in gvConceptosFacturacion.Rows)
            {
                if (((CheckBox)item.Cells[0].FindControl("chkAsignar")).Checked)
                {
                    dsConceptoFacturacion.ConceptoRow dr = null;
                    //dsConceptoFacturacion.ConceptoRow dr = new dsConceptoFacturacion.ConceptoRow();
                    dr = dsDetalle.NewConceptoRow();
                    dr.ConceptoFacturacionID = Utiles.Validaciones.obtieneEntero(item.Cells[1].Text);

                    TextBox txtCantidad = (TextBox)item.FindControl("txtCantidad");
                    dr.Cantidad = Utiles.Validaciones.obtieneEntero(txtCantidad.Text);

                    TextBox txtNroPrecinto = (TextBox)item.FindControl("txtNroPrecinto");
                    dr.NroPrecinto = txtNroPrecinto.Text;

                    TextBox txtHorasDias = (TextBox)item.FindControl("txtHorasDias");
                    dr.HorasDias = Utiles.Validaciones.obtieneDouble(txtHorasDias.Text);

                    dr.RequiereDatosObligatorio = Convert.ToBoolean(item.Cells[2].Text);

                    dr.TipoTarifarioConceptoFacturableID = Utiles.Validaciones.obtieneEntero(item.Cells[3].Text);

                    Label lblDescripcion = (Label)item.FindControl("lblConceptoFacturacionDescrip");
                    dr.Descripcion = lblDescripcion.Text;

                    TextBox txtCodigoBarras = (TextBox)item.FindControl("txtCodigoBarras");
                    dr.CodigoBarras = txtCodigoBarras.Text;

                    dsDetalle.AddConceptoRow(dr);
                }
            }

            Session["DsDetalleConceptosFacturacionAAgregar"] = dsDetalle;

            StringBuilder scriptFinal = new StringBuilder();

            scriptFinal.Append("<script type=\"text/javascript\">\n");
            scriptFinal.Append("window.close();\n");
            scriptFinal.Append("</script>");
            Page.RegisterStartupScript("DatosRegistrados", scriptFinal.ToString());
        }