Esempio n. 1
0
    protected void b_grabar_Click(object sender, EventArgs e)
    {
        String        Sql, SqlCertif, SqlCertifMdp;
        SqlConnection SqlConn = fn.ConnectionSql();
        String        MDP, Cortesia, Local;

        //Se verifica que exista detalle para la session actual
        Sql = "select count(ncertificado) from tblCertifDet where Puesto='" + Session["idPuesto"] + "' and idPais='" + Session["idPais"] + "' and ncertificado='" + l_n_certificado.Text + "' and session='" + Session["session"] + "'";
        Double cert_det = fn.EjecutarScalarDouble(Sql, SqlConn);

        Double total = fn.TotalCertificado(l_n_certificado.Text, Session["idPuesto"].ToString(), Session["idPais"].ToString(), SqlConn);

        if (Convert.ToDouble(tb_subtotalg.Text) == Math.Round(total, 2) && cert_det == Convert.ToDouble(l_servicios.Text) && cert_det > 0 && ddl_cliente.SelectedValue.Trim() != "" && ddl_cuarentena.SelectedValue.Trim() != "" && tb_fecha_tratamiento.Text.Trim().Length != 0)
        {
            //Se graba en la tblCertifMDP
            if (cb_cliente_contado.Checked == true)
            {
                MDP = "0";
            }
            else
            {
                MDP = "1";
            }

            if (cb_cortesia.Checked == true)
            {
                Cortesia = "1";
            }
            else
            {
                Cortesia = "0";
            }

            if (cb_local.Checked == true)
            {
                Local = "1";
            }
            else
            {
                Local = "0";
            }

            if (Convert.ToDouble(tb_recargo.Text) > 0)
            {
                Sql = "insert into tblCertifDet (Puesto,Ncertificado,Servicio,Cantidad,US,local,subtotal,DB,idPais) values ('" + Session["idPuesto"] + "','" + l_n_certificado.Text + "','";
                Sql = Sql + fn.ValIni(Session["idPais"].ToString(), "CuentaRecargo", SqlConn) + "',1," + tb_recargo.Text + "," + tb_recargo.Text + "," + tb_recargo.Text + ",0,'" + Session["idPais"] + "')";
                fn.EjecutarNonQuery(Sql, SqlConn);
            }

            SqlCertifMdp = "insert into tblCertifMDP (Puesto, NCertificado, MDP, Cantidad, Abono, SaldoNuevo, IDAbono, NEnd, idPais) values ('" + Session["idPuesto"] + "','" + l_n_certificado.Text + "',";
            SqlCertifMdp = SqlCertifMdp + MDP.ToString() + "," + tb_total.Text + ",0," + tb_total.Text + ",0,0,'" + Session["idPais"] + "')";

            //Se graba en la tblCertif
            String nplaca;
            if (tb_nplaca.Text.Length == 0)
            {
                nplaca = "";
            }
            else
            {
                nplaca = tb_nplaca.Text;
            }

            String observacion;
            if (tb_observaciones.Text.Length == 0)
            {
                observacion = "";
            }
            else
            {
                observacion = tb_observaciones.Text;
            }

            String fecha_trat = tb_fecha_tratamiento.Text + " " + DateTime.Now.ToLongTimeString();
            String fecha      = tb_fecha.Text + " " + DateTime.Now.ToLongTimeString();

            SqlCertif = "insert into tblCertif (Puesto,Ncertificado,Fecha,Cambio,Cortesia,Local,Total,TotalString,Observacion,Responsable,Anulado,Remesado,Replicado,NEnd,TipoCertificado,ClienteExtra,Cliente,Placa,FechaTrat,Cuarentena,idPais) values ('";
            SqlCertif = SqlCertif + Session["idPuesto"] + "','" + l_n_certificado.Text + "','" + fecha.ToString() + "'," + tb_cambio.Text + "," + Cortesia.ToString() + "," + Local + "," + tb_total.Text + ",'" + l_numlet.Text + "','" + observacion.ToString() + "','";
            SqlCertif = SqlCertif + Session["login"] + "',0,0,0,1,'ASPERSIÓN TERRESTRE','" + tb_cliente.Text + "','" + ddl_cliente.SelectedValue + "','" + nplaca.ToString() + "','" + fecha_trat.ToString() + "','" + ddl_cuarentena.SelectedValue + "','" + Session["idPais"] + "')";

            bool error = false;

            try
            {
                fn.EjecutarNonQuery(SqlCertif, SqlConn);
                fn.EjecutarNonQuery(SqlCertifMdp, SqlConn);
            }
            catch
            {
                error = true;
            }
            finally
            {
                if (error)
                {
                    Response.Redirect("Cert_Aspersion_Terrestre.aspx?error=ok&ncertif=" + l_n_certificado.Text);
                }
                else
                {
                    if (fn.Verificar_Certificado(l_n_certificado.Text, Session["idPuesto"].ToString(), Session["idPais"].ToString(), SqlConn))
                    {
                        fn.Incrementar_Correlativo(Session["idPais"].ToString(), Session["idPuesto"].ToString(), "NCertificado", SqlConn);

                        //Se registra en auditoria
                        fn.Auditoria(Session["login"].ToString(), "Agregar Certificado", l_n_certificado.Text, Session["idPais"].ToString(), SqlConn);

                        SqlConn.Close();

                        Response.Redirect("Cert_Aspersion_Terrestre.aspx?save=ok&ncertif=" + l_n_certificado.Text);
                    }
                    else
                    {
                        Response.Redirect("Cert_Aspersion_Terrestre.aspx?error=ok&ncertif=" + l_n_certificado.Text);
                    }
                }
            }
        }
        else
        {
            if (cert_det == 0 || cert_det != Convert.ToDouble(l_servicios.Text) || Convert.ToDouble(tb_subtotalg.Text) != Math.Round(total, 2))
            {
                Response.Redirect("Cert_Aspersion_Terrestre.aspx?error=ok");
            }

            fn.Message(Page, "Verificar! Hay campos que son obligatorios como el CLIENTE, FECHA TRATAMIENTO y ENCARGADO DE CUARENTENA");
        }
    }
        public void Guardar()
        {
            Funciones fn = new Funciones();

            try {
                DataGrid     dr  = new DataGrid();
                tblcertifmdp mdp = new tblcertifmdp();
                mdp.Mdp = Encabezado.Credito == true?Int16.Parse("1") : Int16.Parse("0");

                mdp.Ncertificado = this.Encabezado.Ncertificado;
                mdp.Puesto       = Encabezado.Puesto;
                mdp.Idabono      = 0;
                mdp.idpais       = Encabezado.idpais;
                mdp.Cantidad     = Encabezado.Total;
                mdp.Abono        = 0;
                mdp.Saldonuevo   = Encabezado.Total;
                mdp.Nend         = false;
                mdp.Enviaplat    = false;
                if (Encabezado.FormaPago == "-1")
                {
                    mdp.Mdp   = 10;
                    mdp.Banco = Encabezado.AutorizacionBanco;
                }
                fn.ConnectionSql();
                fn.BeginTransaction();
                SqlCommand con = this.Encabezado.getComandQuery(fn._LocalC, TipoTransaccion.Insert);
                con.Transaction = fn._tr;
                con.ExecuteNonQuery();
                string cAuto = fn.ValIni(Encabezado.idpais, "ConsumoAutomatico");
                foreach (tblcertifdet det in this.Detalle)
                {
                    if (det.Servicio != "CuentaRecargo")
                    {
                        SqlCommand cond = det.getComandQuery(fn._LocalC, TipoTransaccion.Insert);
                        cond.Transaction = fn._tr;
                        cond.ExecuteNonQuery();
                        det.Detalle = det.GetLasIdentity(fn._LocalC, fn._tr);
                        if (cAuto == "1")
                        {
                            this.ProcesarInventario(ref fn, det);
                        }
                    }
                    else
                    {
                        fn.RegistrarRecargo(this.Encabezado.Ncertificado, det.Local.ToString());
                    }
                }
                SqlCommand cmMdp = mdp.getComandQuery(fn._LocalC, TipoTransaccion.Insert);
                cmMdp.Transaction = fn._tr;
                cmMdp.ExecuteNonQuery();
                fn.Incrementar_Correlativo(this.Encabezado.idpais, this.Encabezado.Puesto, "NCertificado");
                //Se registra en auditoria
                fn.Auditoria(this.Detalle[0].Session, "Agregar Certificado", this.Encabezado.Ncertificado, this.Encabezado.idpais);
                fn._tr.Commit();
            } catch (Exception ex) {
                fn._tr.Rollback();
                fn._LocalC.Close();
                throw ex;
            } finally {
                fn._tr.Dispose();
                fn._LocalC.Close();
            }
        }