void ComponerPagina(Gnome.PrintContext ContextoImp, Gnome.PrintJob trabajoImpresion) { ContextoImp.BeginPage("Pagina 1"); filas = 635; //VARIABLES imprime_encabezado(ContextoImp, trabajoImpresion); genera_tabla(ContextoImp, trabajoImpresion); imprime_titulo(ContextoImp, trabajoImpresion); ContextoImp.ShowPage(); }
void ComponerPagina(Gnome.PrintContext ContextoImp, Gnome.PrintJob trabajoImpresion) { for (int i1 = 0; i1 <= 4; i1++) //<= 4, 5 veces para tasmaƱo carta { NpgsqlConnection conexion; conexion = new NpgsqlConnection(connectionString + nombrebd); // Verifica que la base de datos este conectada try { conexion.Open(); NpgsqlCommand comando; comando = conexion.CreateCommand(); comando.CommandText = "SELECT " + "osiris_erp_cobros_deta.folio_de_servicio,osiris_erp_cobros_deta.pid_paciente, " + "osiris_his_tipo_admisiones.descripcion_admisiones,aplicar_iva, " + "osiris_his_tipo_admisiones.id_tipo_admisiones AS idadmisiones," + "osiris_grupo_producto.descripcion_grupo_producto, " + "osiris_productos.id_grupo_producto, " + "to_char(osiris_erp_cobros_deta.porcentage_descuento,'999.99') AS porcdesc, " + "to_char(osiris_erp_cobros_deta.fechahora_creacion,'dd-mm-yyyy') AS fechcreacion, " + "to_char(osiris_erp_cobros_deta.fechahora_creacion,'HH:mm') AS horacreacion, " + "to_char(osiris_erp_cobros_deta.id_producto,'999999999999') AS idproducto,descripcion_producto, " + "to_char(osiris_erp_cobros_deta.cantidad_aplicada,'9999.99') AS cantidadaplicada, " + "to_char(osiris_erp_cobros_deta.precio_producto,'999999.99') AS preciounitario, " + "ltrim(to_char(osiris_erp_cobros_deta.precio_producto,'9999999.99')) AS preciounitarioprod, " + "to_char(osiris_erp_cobros_deta.iva_producto,'999999.99') AS ivaproducto, " + "to_char(osiris_erp_cobros_deta.precio_por_cantidad,'999999.99') AS ppcantidad, " + "to_char(osiris_productos.precio_producto_publico,'999999999.99999') AS preciopublico " + "FROM " + "osiris_erp_cobros_deta,osiris_his_tipo_admisiones,osiris_productos,osiris_grupo_producto " + "WHERE " + "osiris_erp_cobros_deta.id_tipo_admisiones = osiris_his_tipo_admisiones.id_tipo_admisiones " + "AND osiris_erp_cobros_deta.id_producto = osiris_productos.id_producto " + "AND osiris_productos.id_grupo_producto = osiris_grupo_producto.id_grupo_producto " + "AND osiris_erp_cobros_deta.folio_de_servicio = '" + folioservicio.ToString() + "' " + "AND osiris_erp_cobros_deta.eliminado = 'false' " + " ORDER BY osiris_erp_cobros_deta.id_tipo_admisiones ASC, osiris_productos.id_grupo_producto;"; //"AND to_char(osiris_erp_movcargos.fechahora_admision_registro,'dd') >= '"+DateTime.Now.ToString("dd")+"' AND to_char(osiris_erp_movcargos.fechahora_admision_registro,'dd') <= '"+DateTime.Now.ToString("dd")+"' "+ //"AND to_char(osiris_erp_movcargos.fechahora_admision_registro,'MM') >= '"+DateTime.Now.ToString("MM")+"' AND to_char(osiris_erp_movcargos.fechahora_admision_registro,'MM') <= '"+DateTime.Now.ToString("MM")+"' "+ //"AND to_char(osiris_erp_movcargos.fechahora_admision_registro,'yyyy') >= '"+DateTime.Now.ToString("yyyy")+"' AND to_char(osiris_erp_movcargos.fechahora_admision_registro,'yyyy') <= '"+DateTime.Now.ToString("yyyy")+"' " ; NpgsqlDataReader lector = comando.ExecuteReader(); //Console.WriteLine("query serv "+comando.CommandText.ToString()); ContextoImp.BeginPage("Pagina 1"); filas = 620; //635 int idadmision_ = 0; int idproducto = 0; string datos = ""; float porcentajedes = 0; float descuento = 0; float ivaprod = 0; float subtotal = 0; float subt15 = 0; float subt0 = 0; float sumadesc = 0; float sumaiva = 0; float total = 0; float totalgrupo = 0; float totaladm = 0; float totaldesc = 0; float totaldelmov = 0; float subtotaldelmov = 0; //float deducible = 0; //float coaseguro = 0; if (lector.Read()) { //ContextoImp.BeginPage("Pagina 1"); //VARIABLES if ((int)lector["idadmisiones"] == 100 && (int)id_tipopaciente == 101 && (bool)apl_desc_siempre == true || (int)lector["idadmisiones"] == 300 && (int)id_tipopaciente == 101 && (bool)apl_desc_siempre == true || (int)lector["idadmisiones"] == 400 && (int)id_tipopaciente == 101 && (bool)apl_desc_siempre == true) { apl_desc = true; } else { if (apl_desc_siempre == true) { apl_desc = false; apl_desc_siempre = false; } } datos = (string)lector["descripcion_producto"]; subtotal = float.Parse((string)lector["ppcantidad"], System.Globalization.NumberStyles.Float, new System.Globalization.CultureInfo("es-MX")); //ivaprod = float.Parse((string) lector["ivaproducto"], System.Globalization.NumberStyles.Float, new System.Globalization.CultureInfo( "es-MX" )); porcentajedes = float.Parse((string)lector["porcdesc"], System.Globalization.NumberStyles.Float, new System.Globalization.CultureInfo("es-MX")); if ((bool)lector["aplicar_iva"] == true) { ivaprod = (subtotal * valoriva) / 100; subt15 += subtotal; } else { subt0 += subtotal; ivaprod = 0; } sumaiva += ivaprod; total = subtotal + ivaprod; if (apl_desc == true && apl_desc_siempre == true && porcentajedes > 0.00) { descuento = subtotal * (porcentajedes / 100); //(subtotal*(porcentajedes/100))+ivaprod; //Console.WriteLine(descuento.ToString("F")); } else { descuento = float.Parse("0.00", System.Globalization.NumberStyles.Float, new System.Globalization.CultureInfo("es-MX")); } sumadesc += descuento; //Console.WriteLine("Total: "+total.ToString("F").Replace(",",".")+" porcentaje: "+porcentajedes.ToString("F").Replace(",",".")+"\n"+ //"% descuento: "+descuento.ToString("F").Replace(",",".")+" sumadesc: "+sumadesc.ToString("F").Replace(",",".")); totaldesc += descuento; if (apl_desc == false) { totaldesc = 0; } totalgrupo += total; totaladm += total; totaldelmov += total; subtotaldelmov += total; /////DATOS DE PRODUCTOS imprime_encabezado(ContextoImp, trabajoImpresion); imprime_titulo(ContextoImp, trabajoImpresion, (string)lector["descripcion_admisiones"]); if ((int)lector["idadmisiones"] == 300 || (int)lector["idadmisiones"] == 400) //400 { filas -= 30; imprime_subtitulo(ContextoImp, trabajoImpresion, datos, total); filas += 35; } //DATOS TABLA idadmision_ = (int)lector["idadmisiones"]; idproducto = (int)lector["id_grupo_producto"]; //Console.WriteLine(contador.ToString()); //Console.WriteLine(contdesc.ToString()+"Tipo pac: "+(int) lector["id_tipo_paciente"]+" aplica descuento: "+apl_desc.ToString()+" aplica siempre: "+apl_desc_siempre.ToString()); while (lector.Read()) { //Console.WriteLine("cambio de admision"+" "+(string) lector["descripcion_admisiones"]); if ((int)lector["idadmisiones"] == 100 && id_tipopaciente == 101 || (int)lector["idadmisiones"] == 300 && id_tipopaciente == 101 || (int)lector["idadmisiones"] == 400 && (int)id_tipopaciente == 101) { apl_desc = true; } else { if (apl_desc_siempre == true) { apl_desc = false; apl_desc_siempre = false; } } if (idadmision_ != (int)lector["idadmisiones"]) { ////VARIABLES datos = (string)lector["descripcion_producto"]; subtotal = float.Parse((string)lector["ppcantidad"], System.Globalization.NumberStyles.Float, new System.Globalization.CultureInfo("es-MX")); //ivaprod = float.Parse((string) lector["ivaproducto"], System.Globalization.NumberStyles.Float, new System.Globalization.CultureInfo( "es-MX" )); porcentajedes = float.Parse((string)lector["porcdesc"], System.Globalization.NumberStyles.Float, new System.Globalization.CultureInfo("es-MX")); if ((bool)lector["aplicar_iva"] == true) { ivaprod = (subtotal * valoriva) / 100; subt15 += subtotal; } else { subt0 += subtotal; ivaprod = 0; } sumaiva += ivaprod; total = subtotal + ivaprod; sumadesc = 0; if (apl_desc == true && apl_desc_siempre == true && porcentajedes != 0.00) { descuento = subtotal * (porcentajedes / 100); //(subtotal*(porcentajedes/100))+ivaprod;descuento = (subtotal*(porcentajedes/100))+ivaprod;//((subtotal*(porcentajedes/100))*(15/100));//descuento = subtotal*(porcentajedes/100); //Console.WriteLine(descuento.ToString("F")); } else { descuento = float.Parse("0.00", System.Globalization.NumberStyles.Float, new System.Globalization.CultureInfo("es-MX")); } sumadesc += descuento; //Console.WriteLine("Total: "+total.ToString("F").Replace(",",".")+" porcentaje: "+porcentajedes.ToString("F").Replace(",",".")+"\n"+ //"% descuento: "+descuento.ToString("F").Replace(",",".")+" sumadesc: "+sumadesc.ToString("F").Replace(",",".")); totaladm = 0; totaldesc += descuento; if (apl_desc == false) { totaldesc = 0; } totalgrupo += total; totaladm += total; totaldelmov += total; subtotaldelmov += total; idadmision_ = (int)lector["idadmisiones"]; ////DATOS DE PRODUCTOS datos = (string)lector["descripcion_producto"]; filas -= 30; imprime_titulo(ContextoImp, trabajoImpresion, (string)lector["descripcion_admisiones"]); if ((int)lector["idadmisiones"] == 300 || (int)lector["idadmisiones"] == 400) //400 { filas -= 30; imprime_subtitulo(ContextoImp, trabajoImpresion, datos, total); filas += 35; } ///////////////////////////////// SI LA ADMISION SIGUE SIENDO LA MISMA HACE ESTO:////////////////////////////////////////// } else { ///VARIABLES datos = (string)lector["descripcion_producto"]; //cantidadaplicada = float.Parse((string) lector["cantidadaplicada"]); subtotal = float.Parse((string)lector["ppcantidad"], System.Globalization.NumberStyles.Float, new System.Globalization.CultureInfo("es-MX")); //ivaprod = float.Parse((string) lector["ivaproducto"], System.Globalization.NumberStyles.Float, new System.Globalization.CultureInfo( "es-MX" )); porcentajedes = float.Parse((string)lector["porcdesc"], System.Globalization.NumberStyles.Float, new System.Globalization.CultureInfo("es-MX")); if ((bool)lector["aplicar_iva"] == true) { ivaprod = (subtotal * valoriva) / 100; subt15 += subtotal; } else { subt0 += subtotal; ivaprod = 0; } sumaiva += ivaprod; total = subtotal + ivaprod; if (apl_desc == true && apl_desc_siempre == true && porcentajedes != 0.00) { descuento = subtotal * (porcentajedes / 100); //(subtotal*(porcentajedes/100))+ivaprod;descuento = (subtotal*(porcentajedes/100))+ivaprod;//((subtotal*(porcentajedes/100))*(15/100));//descuento = subtotal*(porcentajedes/100); //Console.WriteLine(descuento.ToString("F")); } else { descuento = float.Parse("0.00", System.Globalization.NumberStyles.Float, new System.Globalization.CultureInfo("es-MX")); } sumadesc += descuento; //Console.WriteLine("Total: "+total.ToString("F").Replace(",",".")+" porcentaje: "+porcentajedes.ToString("F").Replace(",",".")+"\n"+ //"% descuento: "+descuento.ToString("F").Replace(",",".")+" sumadesc: "+sumadesc.ToString("F").Replace(",",".")); totaldesc += descuento; if (apl_desc == false) { totaldesc = 0; } totalgrupo += total; totaladm += total; totaldelmov += total; subtotaldelmov += total; //VARIABLES if ((int)lector["idadmisiones"] == 300 || (int)lector["idadmisiones"] == 400) //400 { filas -= 30; imprime_subtitulo(ContextoImp, trabajoImpresion, datos, total); filas += 35; } if (idproducto != (int)lector["id_grupo_producto"]) { totalgrupo = 0; idproducto = (int)lector["id_grupo_producto"]; //imprime_subtitulo(ContextoImp,trabajoImpresion,datos); } } } //termino de ciclo ContextoImp.ShowPage(); } else { MessageDialog msgBoxError = new MessageDialog(MyWinError, DialogFlags.DestroyWithParent, MessageType.Error, ButtonsType.Close, "Este folio no contiene productos aplicados \n" + "existentes para que el procedimiento se muestre \n"); //int result = msgBoxError.Run (); msgBoxError.Run(); msgBoxError.Destroy(); } }catch (NpgsqlException ex) { MessageDialog msgBoxError = new MessageDialog(MyWinError, DialogFlags.DestroyWithParent, MessageType.Warning, ButtonsType.Ok, "PostgresSQL error: {0}", ex.Message); //int result = msgBoxError.Run (); msgBoxError.Run(); msgBoxError.Destroy(); Console.WriteLine("PostgresSQL error: {0}", ex.Message); return; } } }