示例#1
0
 public static string Insert_Scope(ctz_log_cotizacionEntity ctz_log_cotizacion)
 {
     using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["default"].ToString()))
     {
         conn.Open();
         string sql = @"insert into ctz_log_cotizacion(cod_vendedor, columnas_precio, correlativo, correo_cliente, descripcion, estado_correo, fecha_envio, id_cotizacion, nombre_cotizacion, num_columnas, rut_cliente) " +
                      "values (@cod_vendedor, @columnas_precio, (select MAX(isnull(correlativo,0))+1 from ctz_log_cotizacion), @correo_cliente, @descripcion, @estado_correo, @fecha_envio, @id_cotizacion, @nombre_cotizacion, @num_columnas, @rut_cliente);  SELECT SCOPE_IDENTITY(); ";
         using (SqlCommand cmd = new SqlCommand(sql, conn))
         {
             cmd.Parameters.AddWithValue("@cod_vendedor", ctz_log_cotizacion.cod_vendedor);
             cmd.Parameters.AddWithValue("@columnas_precio", ctz_log_cotizacion.columnas_precio);
             //cmd.Parameters.AddWithValue("@correlativo", ctz_log_cotizacion.correlativo);
             cmd.Parameters.AddWithValue("@correo_cliente", ctz_log_cotizacion.correo_cliente);
             cmd.Parameters.AddWithValue("@descripcion", ctz_log_cotizacion.descripcion);
             cmd.Parameters.AddWithValue("@estado_correo", ctz_log_cotizacion.estado_correo);
             cmd.Parameters.AddWithValue("@fecha_envio", ctz_log_cotizacion.fecha_envio);
             cmd.Parameters.AddWithValue("@id_cotizacion", ctz_log_cotizacion.id_cotizacion);
             cmd.Parameters.AddWithValue("@nombre_cotizacion", ctz_log_cotizacion.nombre_cotizacion);
             cmd.Parameters.AddWithValue("@num_columnas", ctz_log_cotizacion.num_columnas);
             cmd.Parameters.AddWithValue("@rut_cliente", ctz_log_cotizacion.rut_cliente);
             try
             {
                 string respuesta = cmd.ExecuteScalar().ToString();
                 return(respuesta);
             }
             catch (Exception EX)
             {
                 return("Error en ctz_log_cotizacionDAL.Insert Detalle: " + EX.Message);
             }
         }
     }
 }
示例#2
0
 public static string Update(ctz_log_cotizacionEntity ctz_log_cotizacion)
 {
     using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["default"].ToString()))
     {
         conn.Open();
         string sql = @"update ctz_log_cotizacion " +
                      "set " +
                      "cod_vendedor = @cod_vendedor, " +
                      "columnas_precio = @columnas_precio, " +
                      "correlativo = @correlativo, " +
                      "correo_cliente = @correo_cliente, " +
                      "descripcion = @descripcion, " +
                      "estado_correo = @estado_correo, " +
                      "fecha_envio = @fecha_envio, " +
                      "id_cotizacion = @id_cotizacion, " +
                      "nombre_cotizacion = @nombre_cotizacion, " +
                      "num_columnas = @num_columnas, " +
                      "rut_cliente = @rut_cliente" +
                      " where id_cotizacion_log = @_id_cotizacion_log ";
         using (SqlCommand cmd = new SqlCommand(sql, conn))
         {
             cmd.Parameters.AddWithValue("@cod_vendedor", ctz_log_cotizacion.cod_vendedor);
             cmd.Parameters.AddWithValue("@columnas_precio", ctz_log_cotizacion.columnas_precio);
             cmd.Parameters.AddWithValue("@correlativo", ctz_log_cotizacion.correlativo);
             cmd.Parameters.AddWithValue("@correo_cliente", ctz_log_cotizacion.correo_cliente);
             cmd.Parameters.AddWithValue("@descripcion", ctz_log_cotizacion.descripcion);
             cmd.Parameters.AddWithValue("@estado_correo", ctz_log_cotizacion.estado_correo);
             cmd.Parameters.AddWithValue("@fecha_envio", ctz_log_cotizacion.fecha_envio);
             cmd.Parameters.AddWithValue("@id_cotizacion", ctz_log_cotizacion.id_cotizacion);
             cmd.Parameters.AddWithValue("@nombre_cotizacion", ctz_log_cotizacion.nombre_cotizacion);
             cmd.Parameters.AddWithValue("@num_columnas", ctz_log_cotizacion.num_columnas);
             cmd.Parameters.AddWithValue("@rut_cliente", ctz_log_cotizacion.rut_cliente);
             cmd.Parameters.AddWithValue("@_id_cotizacion_log", ctz_log_cotizacion.id_cotizacion_log);
             try
             {
                 cmd.ExecuteNonQuery();
                 return("OK");
             }
             catch (Exception EX)
             {
                 return("Error en ctz_log_cotizacionDAL.Update Detalle: " + EX.Message);
             }
         }
     }
 }
示例#3
0
        private static ctz_log_cotizacionEntity Load(IDataReader reader)
        {
            ctz_log_cotizacionEntity ctz_log_cotizacion = new ctz_log_cotizacionEntity();

            ctz_log_cotizacion.cod_vendedor      = Convert.ToString(reader["cod_vendedor"]);
            ctz_log_cotizacion.columnas_precio   = Convert.ToString(reader["columnas_precio"]);
            ctz_log_cotizacion.correlativo       = int.Parse(reader["correlativo"].ToString());
            ctz_log_cotizacion.correo_cliente    = Convert.ToString(reader["correo_cliente"]);
            ctz_log_cotizacion.descripcion       = Convert.ToString(reader["descripcion"]);
            ctz_log_cotizacion.estado_correo     = Convert.ToString(reader["estado_correo"]);
            ctz_log_cotizacion.fecha_envio       = DateTime.Parse(reader["fecha_envio"].ToString());
            ctz_log_cotizacion.id_cotizacion     = int.Parse(reader["id_cotizacion"].ToString());
            ctz_log_cotizacion.id_cotizacion_log = int.Parse(reader["id_cotizacion_log"].ToString());
            ctz_log_cotizacion.nombre_cotizacion = Convert.ToString(reader["nombre_cotizacion"]);
            ctz_log_cotizacion.num_columnas      = int.Parse(reader["num_columnas"].ToString());
            ctz_log_cotizacion.rut_cliente       = Convert.ToString(reader["rut_cliente"]);

            return(ctz_log_cotizacion);
        }
示例#4
0
 public static string Agregar(ctz_log_cotizacionEntity u)
 {
     using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["default"].ToString()))
     {
         conn.Open();
         string     sql_encontrar = @"SELECT count(1) from ctz_log_cotizacion where id_cotizacion_log = @id_cotizacion_log";
         SqlCommand cmd_encontrar = new SqlCommand(sql_encontrar, conn);
         cmd_encontrar.Parameters.AddWithValue("@id_cotizacion_log", u.id_cotizacion_log);
         try
         {
             string respuesta = cmd_encontrar.ExecuteScalar().ToString();
             if (Convert.ToInt32(respuesta) > 0)
             {
                 string resp = Update(u);
                 if (resp == "OK")
                 {
                     return("2");
                 }
                 else
                 {
                     return("3");
                 }
             }
             else
             {
                 string resp = Insert(u);
                 if (resp == "OK")
                 {
                     return("1");
                 }
                 else
                 {
                     return("3");
                 }
             }
         }
         catch (Exception EX)
         {
             return("3");
         }
     }
 }
        public void COMPLETAR_DETALLE(int id, string fecha, string correo, string nombre)
        {
            DBUtil    db = new DBUtil();
            DataTable dt = new DataTable();

            ctz_log_cotizacionEntity ctz = new ctz_log_cotizacionEntity();

            ctz.id_cotizacion_log = id;
            if (ctz_log_cotizacionBO.encontrar(ref ctz) == "OK")
            {
                T_ID.Text      = ctz.id_cotizacion.ToString();
                T_CLIENTE.Text = nombre;
                T_FECHA.Text   = fecha;
                T_CORREO.Text  = correo;
                LlenarDetalle(id);
                G_SERVICIOS.DataSource = ctz_log_cotizaciones_serviciosBO.GetAll(" where id_cotizacion_log = " + id);
                G_SERVICIOS.DataBind();
                CalcularTotales(id);
            }
        }
示例#6
0
 public static string Delete(ctz_log_cotizacionEntity ctz_log_cotizacion)
 {
     using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["default"].ToString()))
     {
         conn.Open();
         string sql = @"delete from ctz_log_cotizacion " +
                      " where id_cotizacion_log = @id_cotizacion_log ";
         using (SqlCommand cmd = new SqlCommand(sql, conn))
         {
             cmd.Parameters.AddWithValue("@id_cotizacion_log", ctz_log_cotizacion.id_cotizacion_log);
             try
             {
                 cmd.ExecuteNonQuery();
                 return("OK");
             }
             catch (Exception EX)
             {
                 return("Error en ctz_log_cotizacionDAL.Delete Detalle: " + EX.Message);
             }
         }
     }
 }
示例#7
0
 public static string encontrar(ref ctz_log_cotizacionEntity u)
 {
     using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["default"].ToString()))
     {
         conn.Open();
         string     sql = @"SELECT * from ctz_log_cotizacion where id_cotizacion_log = @id_cotizacion_log";
         SqlCommand cmd = new SqlCommand(sql, conn);
         cmd.Parameters.AddWithValue("@id_cotizacion_log", u.id_cotizacion_log);
         try
         {
             SqlDataReader reader = cmd.ExecuteReader();
             if (reader.Read())
             {
                 u = Load(reader);
                 return("OK");
             }
         }
         catch (Exception EX)
         {
             return("Error en ctz_log_cotizacionDAL.Validar Detalle: " + EX.Message);
         }
     }
     return("No encontrado en DAL");
 }
示例#8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Document doc = new Document();

            try
            {
                bool          enviar_correo = false;
                string        id_cotizacion = "";
                DBUtil        db            = new DBUtil();
                usuarioEntity vend          = new usuarioEntity();
                vend = (usuarioEntity)(Session["usuario"]);
                if (vend != null)
                {
                    if (Request.QueryString["idctz"] != null)
                    {
                        id_cotizacion = Request.QueryString["idctz"].ToString();
                    }
                    if (Request.QueryString["cr"] != null)
                    {
                        if (Request.QueryString["cr"].ToString() == "SI")
                        {
                            enviar_correo = true;
                        }
                    }

                    if (id_cotizacion != "")
                    {
                        ctz_log_cotizacionEntity ctz = new ctz_log_cotizacionEntity();
                        ctz.id_cotizacion_log = int.Parse(id_cotizacion);

                        if (ctz_log_cotizacionBO.encontrar(ref ctz) == "OK")
                        {
                            //
                            string path       = Server.MapPath("COTIZACIONES");
                            string nombre_pdf = "cotizacion_" + vend.cod_usuario + "_" + id_cotizacion;
                            string n_file     = "/" + nombre_pdf.Replace(",", "").Replace(".", "").Replace(" ", "").Replace("/", "") + ".pdf";
                            try
                            {
                                System.IO.File.Delete(path + n_file);
                            }
                            catch (System.IO.IOException ex)
                            {
                            }
                            PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(path + n_file, FileMode.Create));
                            try
                            {
                                ITextEvents PageEventHandler = new ITextEvents()
                                {
                                    ImageFooter = iTextSharp.text.Image.GetInstance(Server.MapPath("~/COTIZADOR/LOGOS/banner.jpg"))
                                };
                                writer.PageEvent = PageEventHandler;

                                DataTable dt_detalle = new DataTable();
                                dt_detalle = db.consultar("select * from V_CTZ_COTIZACION_DET_LOG where id_cotizacion_log = " + ctz.id_cotizacion_log + " order by nom_categ, nom_producto");

                                DataTable dt_enc = new DataTable();
                                dt_enc = db.consultar("select * from [V_CTZ_LOG_COTIZACION] where id_cotizacion_log = " + ctz.id_cotizacion_log);

                                // CONFIGURACION PDF
                                //doc.SetPageSize(PageSize.LEGAL.Rotate());
                                doc.SetMargins(10f, 10f, 20f, 200f);
                                doc.AddTitle("Cotización Soprodi");
                                doc.AddCreator(vend.nombre_);
                                // ------------ FONTS
                                doc.Open();

                                // ENCABEZADO (2 Logos y el encabezado superior).
                                PdfPTable tabla_encabezado = new PdfPTable(3);
                                tabla_encabezado.LockedWidth = true;
                                tabla_encabezado.TotalWidth  = 575f;
                                float[] widths_enc = new float[] { 100f, 375f, 100f };
                                tabla_encabezado.SetWidths(widths_enc);

                                // AGREGAR LOGOS
                                iTextSharp.text.Image imagen  = creaimagen("~/COTIZADOR/LOGOS/dereyes.png", 80, "c");
                                iTextSharp.text.Image imagen2 = creaimagen("~/COTIZADOR/LOGOS/soprodi.jpg", 80, "c");

                                // PRIMERA IMAGEN
                                agregaimagen(ref tabla_encabezado, imagen, 0, "c");
                                // ************************************************

                                // ENCABEZADO (DATOS SOPRODI)
                                PdfPTable titulo = new PdfPTable(1);
                                titulo.WidthPercentage = 100;
                                agregacelda(ref titulo, "COTIZACION DE PRODUCTOS", titulo_font, 0, "c");
                                //agregacelda(ref titulo, "SOCIEDAD PRODUCTORA Y DISTRIBUIDORA S.A", titulo_font, 0, "c");
                                //agregacelda(ref titulo, "SOPRODI S.A", titulo_font, 0, "c");
                                //agregacelda(ref titulo, "IMPORTACIONES, EXPORTACIONES,", fuente_negrita, 0, "c");
                                //agregacelda(ref titulo, "DISTRIBUCIÓN DE PRODUCTOS AGRÍCOLAS", fuente_negrita, 0, "c");
                                //agregacelda(ref titulo, "TRANSPORTES DE CARGA TERRESTRE,", fuente_negrita, 0, "c");
                                //agregacelda(ref titulo, "ALMACENAJES, ABARROTES, TRANSPORTE MARÍTIMO Y DE CABOTAJE DE CARGA", fuente_negrita, 0, "c");
                                //agregacelda(ref titulo, "Casa Matriz: Paradero 9 1/2, Camino Troncal San Pedro - Quillota - Casilla 7 Correo Quillota", fuente_normal, 0, "c");
                                //agregacelda(ref titulo, "Fono: (56 33) 2292500 - Fax: (56 33) 2318139", fuente_normal, 0, "c");
                                //agregacelda(ref titulo, "Email: [email protected]", fuente_normal, 0, "c");
                                agregatabla(ref tabla_encabezado, titulo, 0, "c");
                                // ***********************************************************************************************************************************************

                                // SEGUNDA IMAGEN Y NUMERO DE COTIZACION
                                PdfPTable columna3 = new PdfPTable(1);
                                columna3.WidthPercentage = 100;
                                agregaimagen(ref columna3, imagen2, 0, "c");
                                agregacelda(ref columna3, " ", titulo_font, 0, "c");

                                PdfPTable td_columna3 = new PdfPTable(1);
                                td_columna3.WidthPercentage = 100;

                                agregacelda(ref td_columna3, "COTIZACIÓN #", titulo_font, 0, "c");
                                agregacelda(ref td_columna3, ctz.correlativo.ToString(), titulo_font, 0, "c");
                                agregacelda(ref td_columna3, "Válido hasta", fuente_normal, 0, "c");
                                agregacelda(ref td_columna3, ctz.fecha_envio.AddDays(2).ToString("dd/MM/yyyy"), fuente_negrita, 0, "c");
                                agregatabla(ref columna3, td_columna3, 1, "c");

                                agregatabla(ref tabla_encabezado, columna3, 0, "c");
                                // *****************************************************************************

                                // Insertamos el encabezado
                                doc.Add(tabla_encabezado);
                                doc.Add(Chunk.NEWLINE);
                                SaltoLinea(ref doc);

                                // SUB ENCABEZADO
                                PdfPTable tabla_subencabezado = new PdfPTable(1);
                                tabla_subencabezado.WidthPercentage = 100;

                                PdfPTable td_tabla_subencabezado = new PdfPTable(6);
                                td_tabla_subencabezado.TotalWidth = 575f;
                                float[] widthsubencabezado = new float[] { 50f, 10f, 170f, 50f, 10f, 170f };
                                td_tabla_subencabezado.SetWidths(widthsubencabezado);

                                //

                                agregacelda(ref td_tabla_subencabezado, "Señor(es)", fuente_negrita, 0, "i");
                                agregacelda(ref td_tabla_subencabezado, ":", fuente_negrita, 0, "i");
                                agregacelda(ref td_tabla_subencabezado, dt_enc.Rows[0]["nombre cliente"].ToString(), fuente_normal, 0, "i");

                                agregacelda(ref td_tabla_subencabezado, "R.U.T", fuente_negrita, 0, "i");
                                agregacelda(ref td_tabla_subencabezado, ":", fuente_negrita, 0, "i");
                                agregacelda(ref td_tabla_subencabezado, dt_enc.Rows[0]["rut_cliente"].ToString(), fuente_normal, 0, "i");

                                agregacelda(ref td_tabla_subencabezado, "Giro", fuente_negrita, 0, "i");
                                agregacelda(ref td_tabla_subencabezado, ":", fuente_negrita, 0, "i");
                                agregacelda(ref td_tabla_subencabezado, "GIRO_CLIENTE", fuente_normal, 0, "i");

                                agregacelda(ref td_tabla_subencabezado, "Comuna", fuente_negrita, 0, "i");
                                agregacelda(ref td_tabla_subencabezado, ":", fuente_negrita, 0, "i");
                                agregacelda(ref td_tabla_subencabezado, "COMUNA_CLIENTE", fuente_normal, 0, "i");

                                agregacelda(ref td_tabla_subencabezado, "Dirección", fuente_negrita, 0, "i");
                                agregacelda(ref td_tabla_subencabezado, ":", fuente_negrita, 0, "i");
                                agregacelda(ref td_tabla_subencabezado, "DIRECCION_CLIENTE", fuente_normal, 0, "i");

                                agregacelda(ref td_tabla_subencabezado, "Ciudad", fuente_negrita, 0, "i");
                                agregacelda(ref td_tabla_subencabezado, ":", fuente_negrita, 0, "i");
                                agregacelda(ref td_tabla_subencabezado, "CIUDAD_CLIENTE", fuente_normal, 0, "i");

                                agregatabla(ref tabla_subencabezado, td_tabla_subencabezado, 1, "i");

                                doc.Add(tabla_subencabezado);

                                // SUB ENCABEZADO 2
                                PdfPTable tabla_subencabezado2 = new PdfPTable(3);
                                tabla_subencabezado2.WidthPercentage = 100;

                                PdfPTable td_sub2_1 = new PdfPTable(1);
                                agregacelda(ref td_sub2_1, "FECHA DE EMISION", fuente_negrita, 0, "c");
                                agregacelda(ref td_sub2_1, ctz.fecha_envio.ToString("dd/MM/yyyy"), fuente_normal, 0, "c");
                                agregatabla(ref tabla_subencabezado2, td_sub2_1, 1, "i");


                                PdfPTable td_sub2_2 = new PdfPTable(1);
                                agregacelda(ref td_sub2_2, "PLAZO DE PAGO", fuente_negrita, 0, "c");
                                agregacelda(ref td_sub2_2, "CONVENIDO ENTRE LAS PARTES", fuente_normal, 0, "c");
                                agregatabla(ref tabla_subencabezado2, td_sub2_2, 1, "i");

                                PdfPTable td_sub2_5 = new PdfPTable(1);
                                agregacelda(ref td_sub2_5, "VENDEDOR", fuente_negrita, 0, "c");
                                agregacelda(ref td_sub2_5, dt_enc.Rows[0]["nombre_usuario"].ToString(), fuente_normal, 0, "c");
                                agregatabla(ref tabla_subencabezado2, td_sub2_5, 1, "i");

                                doc.Add(tabla_subencabezado2);
                                // ****************************************************************************

                                SaltoLinea(ref doc);

                                // RECORRER DETALLE// DETALLE
                                int contador_bodegas = 0;
                                int num_columnas     = 2;
                                for (int i = 1; i <= 3; i++)
                                {
                                    if (dt_detalle.Rows[0]["cod_bodega_" + i].ToString() != "NO")
                                    {
                                        contador_bodegas++;
                                        num_columnas = num_columnas + 5;
                                    }
                                }
                                PdfPTable tablaOTZ = new PdfPTable(num_columnas);
                                tablaOTZ.LockedWidth = true;
                                tablaOTZ.TotalWidth  = 575f;
                                float[] widthtablaOTZ = new float[] { 0f };
                                if (num_columnas == 7)
                                {
                                    widthtablaOTZ = new float[] { 30f, 200f, 86f, 86f, 86f, 86f, 86f };
                                }
                                else if (num_columnas == 11)
                                {
                                    widthtablaOTZ = new float[] { 30f, 200f, 43f, 43f, 43f, 43f, 43f, 43f, 43f, 43f, 43f };
                                }
                                else
                                {
                                    widthtablaOTZ = new float[] { 30f, 200f, 29f, 29f, 29f, 29f, 29f, 29f, 29f, 29f, 29f, 29f, 29f, 29f, 29f };
                                }
                                tablaOTZ.SetWidths(widthtablaOTZ);
                                //tablaOTZ.WidthPercentage = 100;

                                // COLSPANS SUPERIORES
                                PdfPCell td1 = new PdfPCell(new Phrase(" ", fuente_negrita));
                                td1.Colspan     = 2;
                                td1.BorderWidth = 1;
                                tablaOTZ.AddCell(td1);

                                for (int i = 1; i <= contador_bodegas; i++)
                                {
                                    PdfPCell td2 = new PdfPCell(new Phrase(dt_detalle.Rows[0]["bod" + i].ToString(), fuente_negrita));
                                    td2.Colspan     = 5;
                                    td2.BorderWidth = 1;
                                    tablaOTZ.AddCell(td2);
                                }
                                // FIN COLSPANS

                                agregacelda(ref tablaOTZ, "Nº", fuente_negrita, 1, "c");
                                //agregacelda(ref tablaOTZ, "Cod. Producto", fuente_negrita, 1, "c");
                                agregacelda(ref tablaOTZ, "Producto", fuente_negrita, 1, "c");
                                for (int i = 1; i <= contador_bodegas; i++)
                                {
                                    agregacelda(ref tablaOTZ, "Precio", fuente_negrita, 1, "c");
                                    agregacelda(ref tablaOTZ, "Precio Unit.", fuente_negrita, 1, "c");
                                    agregacelda(ref tablaOTZ, "Precio Unit c/IVA", fuente_negrita, 1, "c");
                                    agregacelda(ref tablaOTZ, "Cantidad", fuente_negrita, 1, "c");
                                    agregacelda(ref tablaOTZ, "Subtotal neto", fuente_negrita, 1, "c");
                                }

                                int    contador = 1;
                                string aux_cat  = "";
                                foreach (DataRow dr in dt_detalle.Rows)
                                {
                                    if (aux_cat != dr["nom_categ"].ToString())
                                    {
                                        PdfPCell td_categoria2 = new PdfPCell(new Phrase(" ", fuente_negrita));
                                        PdfPCell td_categoria  = new PdfPCell(new Phrase(dr["nom_categ"].ToString(), fuente_negrita));
                                        if (contador_bodegas == 1)
                                        {
                                            td_categoria.Colspan  = 7;
                                            td_categoria2.Colspan = 7;
                                        }
                                        else if (contador_bodegas == 2)
                                        {
                                            td_categoria.Colspan  = 12;
                                            td_categoria2.Colspan = 12;
                                        }
                                        else
                                        {
                                            td_categoria.Colspan  = 17;
                                            td_categoria2.Colspan = 17;
                                        }
                                        td_categoria.BorderWidth  = 0;
                                        td_categoria2.BorderWidth = 0;

                                        tablaOTZ.AddCell(td_categoria2);
                                        tablaOTZ.AddCell(td_categoria);

                                        agregacelda(ref tablaOTZ, contador.ToString(), fuente_normal, 1, "c");
                                        //agregacelda(ref tablaOTZ, dr["producto"].ToString(), fuente_normal, 1, "c");

                                        //agregacelda(ref tablaOTZ, dr["nom_categ"].ToString(), fuente_normal, 1, "i");
                                        agregacelda(ref tablaOTZ, dr["nom_producto"].ToString(), fuente_normal, 1, "i");
                                        for (int i = 1; i <= contador_bodegas; i++)
                                        {
                                            agregacelda(ref tablaOTZ, "$ " + int.Parse(dr["precio_con_descuento_" + i].ToString()).ToString("#,##0"), fuente_normal, 1, "d");
                                            agregacelda(ref tablaOTZ, "$ " + int.Parse(dr["precio_con_descuento_unitario_" + i].ToString()).ToString("#,##0"), fuente_normal, 1, "d");
                                            agregacelda(ref tablaOTZ, "$ " + (int.Parse(dr["precio_con_descuento_unitario_" + i].ToString()) + ((int.Parse(dr["precio_con_descuento_unitario_" + i].ToString()) * 19) / 100)).ToString("#,##0"), fuente_normal, 1, "d");
                                            agregacelda(ref tablaOTZ, dr["cantidad_" + i].ToString(), fuente_normal, 1, "d");
                                            agregacelda(ref tablaOTZ, "$ " + int.Parse(dr["total_" + i].ToString()).ToString("#,##0"), fuente_negrita, 1, "d");
                                        }

                                        aux_cat = dr["nom_categ"].ToString();
                                    }
                                    else
                                    {
                                        agregacelda(ref tablaOTZ, contador.ToString(), fuente_normal, 1, "c");
                                        //agregacelda(ref tablaOTZ, dr["producto"].ToString(), fuente_normal, 1, "c");

                                        //agregacelda(ref tablaOTZ, dr["nom_categ"].ToString(), fuente_normal, 1, "i");
                                        agregacelda(ref tablaOTZ, dr["nom_producto"].ToString(), fuente_normal, 1, "i");
                                        for (int i = 1; i <= contador_bodegas; i++)
                                        {
                                            agregacelda(ref tablaOTZ, "$ " + int.Parse(dr["precio_con_descuento_" + i].ToString()).ToString("#,##0"), fuente_normal, 1, "d");
                                            agregacelda(ref tablaOTZ, "$ " + int.Parse(dr["precio_con_descuento_unitario_" + i].ToString()).ToString("#,##0"), fuente_normal, 1, "d");
                                            agregacelda(ref tablaOTZ, "$ " + (int.Parse(dr["precio_con_descuento_unitario_" + i].ToString()) + ((int.Parse(dr["precio_con_descuento_unitario_" + i].ToString()) * 19) / 100)).ToString("#,##0"), fuente_normal, 1, "d");
                                            agregacelda(ref tablaOTZ, dr["cantidad_" + i].ToString(), fuente_normal, 1, "d");
                                            agregacelda(ref tablaOTZ, "$ " + int.Parse(dr["total_" + i].ToString()).ToString("#,##0"), fuente_negrita, 1, "d");
                                        }
                                    }
                                    contador++;
                                }

                                doc.Add(tablaOTZ);
                                SaltoLinea(ref doc);

                                // TOTALES
                                DataTable dt_totales = new DataTable();
                                string    sql        = "";
                                sql += " select bod1.nombre_bodega as nom1, bod2.nombre_bodega as nom2, bod3.nombre_bodega as nom3,  sum(total_1) as 'total_1', sum(total_2) as 'total_2' , sum(total_3) as 'total_3'  " +
                                       " ,sum(total_iva_1) as 'total_iva_1', sum(total_iva_2) as 'total_iva_2', sum(total_iva_3) as 'total_iva_3' " +
                                       " from CTZ_LOG_Cotizacion_det ctz left join CTZ_Bodegas bod1 on ctz.cod_bodega_1 = bod1.cod_bodega " +
                                       " left join CTZ_Bodegas bod2 on ctz.cod_bodega_2 = bod2.cod_bodega " +
                                       " left join CTZ_Bodegas bod3 on ctz.cod_bodega_3 = bod3.cod_bodega  " +
                                       " where id_cotizacion_log = " + id_cotizacion +
                                       " group by bod1.nombre_bodega, bod2.nombre_bodega,bod3.nombre_bodega ";
                                dt_totales = db.consultar(sql);

                                if (dt_totales.Rows.Count > 0)
                                {
                                    PdfPTable tablaTotales = new PdfPTable(contador_bodegas);
                                    tablaTotales.HorizontalAlignment = Element.ALIGN_RIGHT;
                                    if (contador_bodegas == 1)
                                    {
                                        tablaTotales.WidthPercentage = 20;
                                    }
                                    else if (contador_bodegas == 2)
                                    {
                                        tablaTotales.WidthPercentage = 40;
                                    }
                                    else if (contador_bodegas == 3)
                                    {
                                        tablaTotales.WidthPercentage = 60;
                                    }

                                    for (int i = 1; i <= contador_bodegas; i++)
                                    {
                                        try
                                        {
                                            int total    = int.Parse(dt_totales.Rows[0]["total_" + i].ToString());
                                            int totaliva = int.Parse(dt_totales.Rows[0]["total_iva_" + i].ToString());
                                            if (dt_totales.Rows[0]["nom" + i].ToString() != "NO")
                                            {
                                                PdfPTable tablaTotales_td = new PdfPTable(2);
                                                PdfPCell  td_total        = new PdfPCell(new Phrase(dt_totales.Rows[0]["nom" + i].ToString(), fuente_negrita));
                                                td_total.Colspan     = 2;
                                                td_total.BorderWidth = 1;
                                                tablaTotales_td.AddCell(td_total);
                                                agregacelda(ref tablaTotales_td, "Total", fuente_negrita, 1, "i");
                                                agregacelda(ref tablaTotales_td, "$ " + total.ToString("#,##0"), fuente_normal, 1, "d");
                                                agregacelda(ref tablaTotales_td, "Total + IVA", fuente_negrita, 1, "i");
                                                agregacelda(ref tablaTotales_td, "$ " + totaliva.ToString("#,##0"), fuente_normal, 1, "d");
                                                agregatabla(ref tablaTotales, tablaTotales_td, 1, "c");
                                            }
                                        }
                                        catch (Exception)
                                        {
                                        }
                                    }
                                    doc.Add(tablaTotales);
                                }
                                else
                                {
                                }
                                SaltoLinea(ref doc);
                                // SERVICIOS
                                DataTable dt_servicios = new DataTable();
                                dt_servicios = ctz_log_cotizaciones_serviciosBO.GetAll(" where id_cotizacion_log = " + id_cotizacion + " and tipo_servicio = 'POR SEPARADO' ");
                                if (dt_servicios.Rows.Count > 0)
                                {
                                    PdfPTable tabla_servicios = new PdfPTable(2);
                                    tabla_servicios.HorizontalAlignment = Element.ALIGN_RIGHT;
                                    tabla_servicios.WidthPercentage     = 40;

                                    agregacelda(ref tabla_servicios, "Servicio", fuente_negrita, 1, "i");
                                    agregacelda(ref tabla_servicios, "Valor", fuente_negrita, 1, "d");
                                    foreach (DataRow dr_servicio in dt_servicios.Rows)
                                    {
                                        agregacelda(ref tabla_servicios, dr_servicio["nombre_servicio"].ToString(), fuente_normal, 1, "i");
                                        agregacelda(ref tabla_servicios, "$" + int.Parse(dr_servicio["valor_servicio"].ToString()).ToString("#,##0"), fuente_normal, 1, "d");;
                                    }
                                    doc.Add(tabla_servicios);
                                }
                                //
                                // FIN
                                SaltoLinea(ref doc);
                                doc.NewPage();
                                doc.Close();
                                writer.Close();
                                string pdfPath = Server.MapPath("~/COTIZADOR/COTIZACIONES/" + n_file);
                                if (enviar_correo)
                                {
                                    //string htmlcorreo = "";
                                    //htmlcorreo += "<div style='text-align:center;     display: block !important;' > ";
                                    //htmlcorreo += "<div style='background-color:#DC1510; float:right; width:12.5%; height:6px'></div>";
                                    //htmlcorreo += "<div style='background-color:#005D99; float:right; width:12.5%; height:6px'></div>";
                                    //htmlcorreo += "<div style='background-color:#DC1510; float:right; width:12.5%; height:6px'></div>";
                                    //htmlcorreo += "<div style='background-color:#005D99; float:right; width:12.5%; height:6px'></div>";
                                    //htmlcorreo += "<div style='background-color:#DC1510; float:right; width:12.5%; height:6px'></div>";
                                    //htmlcorreo += "<div style='background-color:#005D99; float:right; width:12.5%; height:6px'></div>";
                                    //htmlcorreo += "<div style='background-color:#DC1510; float:right; width:12.5%; height:6px'></div>";
                                    //htmlcorreo += "<div style='background-color:#005D99; float:right; width:12.5%; height:6px'></div> ";
                                    //htmlcorreo += "</div>";
                                    //htmlcorreo += "<div><img src='http://a58.imgup.net/Sopro4d9d.png' style='    float: right;     width: 90px;'> </div>";

                                    //htmlcorreo += "<h4>Cliente: [NOMBRE_CLIENTE] </h4>";
                                    //htmlcorreo += "<p>Con fecha: " + DateTime.Now.ToString("dd/MM/yyyy") + " envío la siguiente cotización adjunta. </p>";
                                    //htmlcorreo += "<p>Precios válidos hasta: " + DateTime.Now.AddDays(2).ToString("dd/MM/yyyy") + "</p>";
                                    //htmlcorreo += "<h4>Vendedor: " + vend.nombre_ + "</h4>";

                                    //htmlcorreo += "<br> Para más detalles diríjase a:  <a href='http://www.dereyes.cl/productos.php' > DeReyes.cl  </a> <span style='font:5px; color:gray; float:right;'>No Responder Este Correo</span> <br><br>";
                                    //htmlcorreo += "<div style='text-align:center;     display: block !important;' > ";
                                    //htmlcorreo += "<div style='background-color:#DC1510; float:right; width:12.5%; height:6px'></div>";
                                    //htmlcorreo += "<div style='background-color:#005D99; float:right; width:12.5%; height:6px'></div>";
                                    //htmlcorreo += "<div style='background-color:#DC1510; float:right; width:12.5%; height:6px'></div>";
                                    //htmlcorreo += "<div style='background-color:#005D99; float:right; width:12.5%; height:6px'></div>";
                                    //htmlcorreo += "<div style='background-color:#DC1510; float:right; width:12.5%; height:6px'></div>";
                                    //htmlcorreo += "<div style='background-color:#005D99; float:right; width:12.5%; height:6px'></div>";
                                    //htmlcorreo += "<div style='background-color:#DC1510; float:right; width:12.5%; height:6px'></div>";
                                    //htmlcorreo += "<div style='background-color:#005D99; float:right; width:12.5%; height:6px'></div> ";
                                    //htmlcorreo += "</div>";

                                    //Correo cr = new Correo();
                                    //cr.EnviarCorreo("*****@*****.**", "*****@*****.**", "Cotización Soprodi", htmlcorreo, "", pdfPath, "SOPRODI");
                                }
                                else
                                {
                                    WebClient client = new WebClient();
                                    Byte[]    buffer = client.DownloadData(pdfPath);
                                    Response.ContentType = "application/pdf";
                                    Response.AddHeader("content-length", buffer.Length.ToString());
                                    Response.BinaryWrite(buffer);
                                    Response.Flush();
                                    Response.End();
                                }
                            }
                            catch (Exception ex)
                            {
                                doc.Close();
                                writer.Close();
                                ERROR.Text = "Ocurrió un problema al generar PDF";
                            }
                        }
                    }
                }
                else
                {
                    Response.Redirect("Login.aspx");
                }
            }
            catch (Exception ex)
            {
                doc.Close();
                ERROR.Text = "Ocurrió un problema al generar PDF";
            }
        }
 public static string encontrar(ref ctz_log_cotizacionEntity u)
 {
     return(ctz_log_cotizacionDAL.encontrar(ref u));
 }
 public static String eliminar(ctz_log_cotizacionEntity b)
 {
     return(ctz_log_cotizacionDAL.Delete(b));
 }
 public static String agregar(ctz_log_cotizacionEntity b)
 {
     return(ctz_log_cotizacionDAL.Agregar(b));
 }
 public static String actualizar(ctz_log_cotizacionEntity b)
 {
     return(ctz_log_cotizacionDAL.Update(b));
 }
 public static String registrar_scope(ctz_log_cotizacionEntity b)
 {
     return(ctz_log_cotizacionDAL.Insert_Scope(b));
 }