Exemplo n.º 1
0
 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();
 }
Exemplo n.º 2
0
        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;
                }
            }
        }