Esempio n. 1
0
        public ActionResult getPartialMat(List <DOCUMENTOP_MOD> docs)
        {
            CartaV doc = new CartaV();

            doc.DOCUMENTOP = docs;
            return(PartialView("~/Views/CartaV/_PartialMatTr.cshtml", doc));
        }
Esempio n. 2
0
        static void GuardarCartaPCategorias(TruequeEntities db, CartaV v, string MATKL, int pos, ref int indexp, bool fact, DateTime VIGENCIA_DE, DateTime VIGENCIA_AL)
        {
            try
            {
                DOCUMENTOP_MOD docmod = v.DOCUMENTOP.FirstOrDefault(x => x.MATKL_ID == MATKL);

                if (docmod != null)
                {
                    CARTAP carp = new CARTAP
                    {
                        //Armado para registro en bd
                        NUM_DOC     = v.num_doc,
                        POS_ID      = pos,
                        POS         = indexp,
                        MATNR       = "",
                        MATKL       = MATKL,
                        CANTIDAD    = 1,
                        MONTO       = docmod.MONTO,
                        PORC_APOYO  = docmod.PORC_APOYO,
                        MONTO_APOYO = docmod.MONTO_APOYO,
                        PRECIO_SUG  = docmod.PRECIO_SUG
                    };

                    //Volumen
                    //B20180726 MGC 2018.07.26
                    if (v.volumen_x)
                    {
                        if (fact)
                        {
                            carp.VOLUMEN_REAL = (docmod.VOLUMEN_REAL == null ? 0.0M : docmod.VOLUMEN_REAL);
                            carp.VOLUMEN_EST  = 0;
                        }
                        else
                        {
                            carp.VOLUMEN_EST  = docmod.VOLUMEN_EST;
                            carp.VOLUMEN_REAL = 0;
                        }
                    }

                    //Apoyo
                    //B20180726 MGC 2018.07.26
                    if (v.apoyototal_x)
                    {
                        if (fact)
                        {
                            carp.APOYO_REAL = (docmod.APOYO_REAL == null ? 0.0M : docmod.APOYO_REAL);
                            carp.APOYO_EST  = 0;
                        }
                        else
                        {
                            carp.APOYO_REAL = 0;
                            carp.APOYO_EST  = (docmod.APOYO_EST == null ? 0.0M : docmod.APOYO_EST);
                        }
                    }

                    //Fechas
                    carp.VIGENCIA_DE = VIGENCIA_DE;
                    carp.VIGENCIA_AL = VIGENCIA_AL;

                    try
                    {
                        //Guardar en CARPETAP
                        db.CARTAPs.Add(carp);
                        db.SaveChanges();
                        indexp++;
                    }
                    catch (Exception e)
                    {
                        Log.ErrorLogApp(e, "Carta", "Create");
                    }
                }
            }
            catch (Exception e)
            {
                Log.ErrorLogApp(e, "Carta", "Create");
            }
        }
Esempio n. 3
0
        public static void ObtenerCartaCategoriasPdf(TruequeEntities db, CartaD cd, CartaV cv, List <DOCUMENTOP_CAT> con3, string decimales, bool fact, bool guardar,
                                                     ref int indexp,
                                                     ref List <string> armadoCuerpoTabStr,
                                                     ref int contadorTabla)
        {
            FormatosC format = new FormatosC();

            foreach (var item2 in con3)
            {
                if (guardar)
                {
                    int pos = db.CARTAs.Where(a => a.NUM_DOC.Equals(cv.num_doc)).OrderByDescending(a => a.POS).First().POS;
                    GuardarCartaPCategorias(db, cv, item2.MATKL, pos, ref indexp, fact, item2.VIGENCIA_DE.Value, item2.VIGENCIA_AL.Value);
                }
                if (cd != null || cv != null)
                {
                    DOCUMENTOP_MOD docmod = new DOCUMENTOP_MOD();
                    if (cv != null)
                    {
                        docmod = cv.DOCUMENTOP.FirstOrDefault(x => x.MATKL_ID == item2.MATKL);
                    }
                    if (cd != null)
                    {
                        docmod = new DOCUMENTOP_MOD
                        {
                            MONTO        = item2.MONTO,
                            PORC_APOYO   = item2.PORC_APOYO,
                            MONTO_APOYO  = item2.MONTO_APOYO,
                            PRECIO_SUG   = item2.PRECIO_SUG,
                            VOLUMEN_REAL = item2.VOLUMEN_REAL,
                            VOLUMEN_EST  = item2.VOLUMEN_EST,
                            APOYO_REAL   = item2.APOYO_REAL,
                            APOYO_EST    = item2.APOYO_EST
                        };
                    }
                    if ((cd != null && cd.material_x) || (cv != null && cv.material_x))
                    {
                        armadoCuerpoTabStr.Add("");
                    }
                    armadoCuerpoTabStr.Add(item2.MATKL);
                    MATERIALGP mt = db.MATERIALGPs.Where(x => x.ID == item2.MATKL).FirstOrDefault();//RSG 03.10.2018
                    if (mt != null)
                    {
                        armadoCuerpoTabStr.Add(mt.DESCRIPCION);//RSG 03.10.2018
                    }
                    else
                    {
                        armadoCuerpoTabStr.Add("");
                    }

                    if ((cd != null && cd.costoun_x) || (cv != null && cv.costoun_x))
                    {
                        armadoCuerpoTabStr.Add(format.toShow(Math.Round(docmod.MONTO, 2), decimales));//B20180730 MGC 2018.07.30 Formatos
                    }
                    if ((cd != null && cd.apoyo_x) || (cv != null && cv.apoyo_x))
                    {
                        armadoCuerpoTabStr.Add(format.toShowPorc(Math.Round(docmod.PORC_APOYO, 2), decimales));//B20180730 MGC 2018.07.30 Formatos
                    }
                    if ((cd != null && cd.apoyop_x) || (cv != null && cv.apoyop_x))
                    {
                        armadoCuerpoTabStr.Add(format.toShow(Math.Round(docmod.MONTO_APOYO, 2), decimales));//B20180730 MGC 2018.07.30 Formatos
                    }

                    if ((cd != null && cd.costoap_x) || (cv != null && cv.costoap_x))
                    {
                        armadoCuerpoTabStr.Add(format.toShow(Math.Round((docmod.MONTO - docmod.MONTO_APOYO), 2), decimales));//B20180730 MGC 2018.07.30 Formatos
                    }
                    if ((cd != null && cd.precio_x) || (cv != null && cv.precio_x))
                    {
                        armadoCuerpoTabStr.Add(format.toShow(Math.Round(docmod.PRECIO_SUG, 2), decimales));//B20180730 MGC 2018.07.30 Formatos
                    }

                    //Volumen
                    //B20180726 MGC 2018.07.26
                    if ((cd != null && cd.volumen_x) || (cv != null && cv.volumen_x))
                    {
                        if (fact)
                        {
                            armadoCuerpoTabStr.Add(format.toShowNum(Math.Round(Convert.ToDecimal(docmod.VOLUMEN_REAL), 2), decimales));//B20180730 MGC 2018.07.30 Formatos
                        }
                        else
                        {
                            armadoCuerpoTabStr.Add(format.toShowNum(Math.Round(Convert.ToDecimal(docmod.VOLUMEN_EST), 2), decimales));//B20180730 MGC 2018.07.30 Formatos
                        }
                    }

                    //Apoyo
                    //B20180726 MGC 2018.07.26
                    if ((cd != null && cd.apoyototal_x) || (cv != null && cv.apoyototal_x))
                    {
                        if (fact)
                        {
                            armadoCuerpoTabStr.Add(format.toShow(Math.Round(Convert.ToDecimal(docmod.APOYO_REAL), 2), decimales));//B20180730 MGC 2018.07.30 Formatos
                        }
                        else
                        {
                            armadoCuerpoTabStr.Add(format.toShow(Math.Round(Convert.ToDecimal(docmod.APOYO_EST), 2), decimales));//B20180730 MGC 2018.07.30 Formatos
                        }
                    }
                }
                else
                {
                    armadoCuerpoTabStr.Add("");
                    armadoCuerpoTabStr.Add(item2.MATKL);
                    armadoCuerpoTabStr.Add(item2.TXT50);
                    armadoCuerpoTabStr.Add(format.toShow(Math.Round(item2.MONTO, 2), decimales));          //B20180730 MGC 2018.07.30 Formatos
                    armadoCuerpoTabStr.Add(format.toShowPorc(Math.Round(item2.PORC_APOYO, 2), decimales)); //B20180730 MGC 2018.07.30 Formatos
                    armadoCuerpoTabStr.Add(format.toShow(Math.Round(item2.MONTO_APOYO, 2), decimales));    //B20180730 MGC 2018.07.30 Formatos
                    armadoCuerpoTabStr.Add(format.toShow(Math.Round(item2.RESTA, 2), decimales));          //B20180730 MGC 2018.07.30 Formatos
                    armadoCuerpoTabStr.Add(format.toShow(Math.Round(item2.PRECIO_SUG, 2), decimales));     //B20180730 MGC 2018.07.30 Formatos
                                                                                                           //B20180726 MGC 2018.07.26
                    if (fact)
                    {
                        armadoCuerpoTabStr.Add(format.toShowNum(Math.Round(Convert.ToDecimal(item2.VOLUMEN_REAL), 2), decimales)); //B20180730 MGC 2018.07.30 Formatos
                        armadoCuerpoTabStr.Add(format.toShow(Math.Round(Convert.ToDecimal(item2.APOYO_REAL), 2), decimales));      //B20180730 MGC 2018.07.30 Formatos
                    }
                    else
                    {
                        armadoCuerpoTabStr.Add(format.toShowNum(Math.Round(Convert.ToDecimal(item2.VOLUMEN_EST), 2), decimales)); //B20180730 MGC 2018.07.30 Formatos
                        armadoCuerpoTabStr.Add(format.toShow(Math.Round(Convert.ToDecimal(item2.APOYO_EST), 2), decimales));      //B20180730 MGC 2018.07.30 Formatos
                    }
                }

                contadorTabla++;
            }
        }
Esempio n. 4
0
        public static void ObtenerCartaProductos(TruequeEntities db, DOCUMENTO d, CartaD cd, CartaV cv, string spras_id, bool guardar,
                                                 ref List <string> lista,
                                                 ref List <listacuerpoc> armadoCuerpoTab,
                                                 ref List <string> armadoCuerpoTabStr,
                                                 ref List <int> numfilasTabla,
                                                 ref List <string> cabeza,
                                                 ref bool editmonto)
        {
            int    contadorTabla = 0;
            string decimales     = d.PAI.DECIMAL; //B20180730 MGC 2018.07.30 Formatos
            bool   fact          = db.TSOLs.First(ts => ts.ID == d.TSOL_ID).FACTURA;

            var con = db.DOCUMENTOPs.Select(x => new { x.NUM_DOC, x.VIGENCIA_DE, x.VIGENCIA_AL }).Where(a => a.NUM_DOC.Equals(d.NUM_DOC)).GroupBy(f => new { f.VIGENCIA_DE, f.VIGENCIA_AL }).ToList();

            foreach (var item in con)
            {
                lista.Add(item.Key.VIGENCIA_DE.ToString() + item.Key.VIGENCIA_AL.ToString());
            }
            int indexp = 1;

            for (int i = 0; i < lista.Count; i++)
            {
                contadorTabla = 0;

                DateTime a1 = DateTime.Parse(lista[i].Remove(lista[i].Length / 2));
                DateTime a2 = DateTime.Parse(lista[i].Remove(0, lista[i].Length / 2));

                List <DOCUMENTOP_SP> con2 = FnCommon.ObtenerDocumentoP(db, spras_id, d.NUM_DOC, a1, a2);



                //Definición si la distribución es monto o porcentaje
                string porclass = ""; //B20180710 MGC 2018.07.18 total es input o text
                string totalm   = ""; //B20180710 MGC 2018.07.18 total es input o text

                if (d.TIPO_TECNICO == "M")
                {
                    porclass = " tipom";
                    totalm   = " total";
                }
                else if (d.TIPO_TECNICO == "P")
                {
                    porclass = " tipop";
                    totalm   = " ni";
                }

                if (con2.Count > 0)
                {
                    //Listado para html CartaV
                    if (armadoCuerpoTab != null)
                    {
                        ObtenerCartaProductosHtml(con2, decimales, porclass, totalm, fact,
                                                  ref armadoCuerpoTab,
                                                  ref contadorTabla);
                    }
                    //Listado para html CartaD y Listado Pdf CartaD y CartaV
                    if (armadoCuerpoTabStr != null)
                    {
                        ObtenerCartaProductosPdf(db, cd, cv, con2, decimales, porclass, totalm, fact, guardar,
                                                 ref indexp,
                                                 ref armadoCuerpoTabStr,
                                                 ref contadorTabla);
                    }
                }
                else
                {
                    List <DOCUMENTOP_CAT> con3 = db.DOCUMENTOPs
                                                 .Where(x => x.NUM_DOC.Equals(d.NUM_DOC) && x.VIGENCIA_DE == a1 && x.VIGENCIA_AL == a2)
                                                 .Join(db.MATERIALGPs, x => x.MATKL, y => y.ID, (x, y) => new DOCUMENTOP_CAT
                    {
                        NUM_DOC      = x.NUM_DOC,
                        MATNR        = x.MATNR,
                        MATKL        = x.MATKL,
                        ID           = y.ID,
                        MONTO        = x.MONTO,
                        PORC_APOYO   = x.PORC_APOYO,
                        TXT50        = y.DESCRIPCION,             //RSG 03.10.2018
                        MONTO_APOYO  = x.MONTO_APOYO,
                        RESTA        = (x.MONTO - x.MONTO_APOYO),
                        PRECIO_SUG   = x.PRECIO_SUG,
                        APOYO_EST    = x.APOYO_EST,
                        APOYO_REAL   = x.APOYO_REAL,
                        VOLUMEN_EST  = x.VOLUMEN_EST,
                        VOLUMEN_REAL = x.VOLUMEN_REAL,
                        VIGENCIA_DE  = x.VIGENCIA_DE,
                        VIGENCIA_AL  = x.VIGENCIA_AL
                    })                     //B20180710 MGC 2018.07.10 Se agregó x.VOLUMEN_EST, x.VOLUMEN_REAL})
                                                 .ToList();
                    if (d.TIPO_TECNICO == "P")
                    {
                        editmonto = true;
                    }

                    //Listado para Html CartaV
                    if (armadoCuerpoTab != null)
                    {
                        ObtenerCartaCategoriasHtml(con3, decimales, fact, d.TIPO_TECNICO,
                                                   ref armadoCuerpoTab,
                                                   ref contadorTabla);
                    }
                    //Listado para html CartaD y Listado Pdf CartaD y CartaV
                    if (armadoCuerpoTabStr != null)
                    {
                        ObtenerCartaCategoriasPdf(db, cd, cv, con3, decimales, fact, guardar,
                                                  ref indexp,
                                                  ref armadoCuerpoTabStr,
                                                  ref contadorTabla);
                    }
                }
                numfilasTabla.Add(contadorTabla);
            }

            if (cd == null && cv == null)
            {
                cabeza.Add(ObtenerTexto(db, spras_id, "materialC"));
                cabeza.Add(ObtenerTexto(db, spras_id, "categoriaC"));
                cabeza.Add(ObtenerTexto(db, spras_id, "descripcionC"));
                cabeza.Add(ObtenerTexto(db, spras_id, "costouC"));
                cabeza.Add(ObtenerTexto(db, spras_id, "apoyopoC"));
                cabeza.Add(ObtenerTexto(db, spras_id, "apoyopiC"));
                cabeza.Add(ObtenerTexto(db, spras_id, "costoaC"));
                cabeza.Add(ObtenerTexto(db, spras_id, "preciosC"));
                //Volumen
                if (fact)
                {
                    cabeza.Add(ObtenerTexto(db, spras_id, "volumenrC"));
                }
                else
                {
                    cabeza.Add(ObtenerTexto(db, spras_id, "volumeneC"));
                }
                //Apoyo
                if (fact)
                {
                    cabeza.Add(ObtenerTexto(db, spras_id, "apoyorC"));
                }
                else
                {
                    cabeza.Add(ObtenerTexto(db, spras_id, "apoyoeC"));
                }
            }
            else
            {
                if ((cd != null && cd.material_x) || (cv != null && cv.material_x))
                {
                    cabeza.Add(ObtenerTexto(db, spras_id, "materialC"));
                }
                cabeza.Add(ObtenerTexto(db, spras_id, "categoriaC"));
                cabeza.Add(ObtenerTexto(db, spras_id, "descripcionC"));
                if ((cd != null && cd.costoun_x) || (cv != null && cv.costoun_x))
                {
                    cabeza.Add(ObtenerTexto(db, spras_id, "costouC"));
                }
                if ((cd != null && cd.apoyo_x) || (cv != null && cv.apoyo_x))
                {
                    cabeza.Add(ObtenerTexto(db, spras_id, "apoyopoC"));
                }
                if ((cd != null && cd.apoyop_x) || (cv != null && cv.apoyop_x))
                {
                    cabeza.Add(ObtenerTexto(db, spras_id, "apoyopiC"));
                }
                if ((cd != null && cd.costoap_x) || (cv != null && cv.costoap_x))
                {
                    cabeza.Add(ObtenerTexto(db, spras_id, "costoaC"));
                }
                if ((cd != null && cd.precio_x) || (cv != null && cv.precio_x))
                {
                    cabeza.Add(ObtenerTexto(db, spras_id, "preciosC"));
                }
                if ((cd != null && cd.volumen_x) || (cv != null && cv.volumen_x))
                {
                    if (fact)
                    {
                        cabeza.Add(ObtenerTexto(db, spras_id, "volumenrC"));
                    }
                    else
                    {
                        cabeza.Add(ObtenerTexto(db, spras_id, "volumeneC"));
                    }
                }
                if ((cd != null && cd.apoyototal_x) || (cv != null && cv.apoyototal_x))
                {
                    if (fact)
                    {
                        cabeza.Add(ObtenerTexto(db, spras_id, "apoyorC"));
                    }
                    else
                    {
                        cabeza.Add(ObtenerTexto(db, spras_id, "apoyoeC"));
                    }
                }
            }
        }