public ActionResult getPartialMat(List <DOCUMENTOP_MOD> docs) { CartaV doc = new CartaV(); doc.DOCUMENTOP = docs; return(PartialView("~/Views/CartaV/_PartialMatTr.cshtml", doc)); }
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"); } }
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++; } }
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")); } } } }