public ActionResult CreateInsumosGenerales(Pt_Tmp_Cotizacion_Fase_Insumos tmp_Cot_Fase_Insumo) { Pt_Tmp_Cotizacion_Fase_Insumos tmp = db.Pt_Tmp_Cotizacion_Fase_Insumos.Where(t => t.ctpfi_cfas_id == tmp_Cot_Fase_Insumo.ctpfi_cfas_id && t.ctpfi_cins_id == tmp_Cot_Fase_Insumo.ctpfi_cins_id && t.activo && !t.eliminado).SingleOrDefault(); if (ModelState.IsValid) { UsuarioTO usuarioTO = Cache.DiccionarioUsuariosLogueados[User.Identity.Name]; if (tmp == null) { tmp_Cot_Fase_Insumo.id_usuario_creacion = usuarioTO.usuario.id_usuario; tmp_Cot_Fase_Insumo.fecha_creacion = DateTime.Now; tmp_Cot_Fase_Insumo.activo = true; tmp_Cot_Fase_Insumo.eliminado = false; db.Pt_Tmp_Cotizacion_Fase_Insumos.Add(tmp_Cot_Fase_Insumo); db.SaveChanges(); } else { if (tmp_Cot_Fase_Insumo.ctpfi_cfas_id == tmp.ctpfi_cfas_id && tmp_Cot_Fase_Insumo.ctpfi_cins_id == tmp.ctpfi_cins_id) { tmp_Cot_Fase_Insumo.fecha_modificacion = DateTime.Now; tmp_Cot_Fase_Insumo.id_usuario_modificacion = usuarioTO.usuario.id_usuario; tmp.ctpfi_cantidad = tmp.ctpfi_cantidad + 1; db.Entry(tmp).State = EntityState.Modified; db.SaveChanges(); } } Pt_Fases_Cotizacion faseCotizacion = db.Pt_Fases_Cotizacion.Find(tmp_Cot_Fase_Insumo.ctpfi_cfas_id); List <Pt_Insumos> insumos = faseCotizacion.Pt_Tmp_Cotizacion_Fase_Insumos.Where(tpfp => tpfp.ctpfi_cfas_id == tmp_Cot_Fase_Insumo.ctpfi_cfas_id && tpfp.activo && !tpfp.eliminado).Select(tpfp => tpfp.Pt_Insumos).ToList(); ViewBag.ins = insumos; ViewBag.pagosPuesto = db.Pt_Pagos_Puesto.Where(pp => pp.cppu_cpue_id == tmp_Cot_Fase_Insumo.ctpfi_cfas_id).ToList(); ViewBag.puestoInsumos = db.Pt_Puesto_Insumos.Where(pp => pp.cpin_cins_id == tmp_Cot_Fase_Insumo.ctpfi_cins_id).ToList(); return(RedirectToAction("Create/" + tmp_Cot_Fase_Insumo.ctpfi_cfas_id)); } ViewBag.ctpf_cfas_id = new SelectList(db.Pt_Fases_Cotizacion, "cfas_id", "cfas_nombre", tmp_Cot_Fase_Insumo.ctpfi_cfas_id); ViewBag.ctpf_cpue_id = new SelectList(db.Pt_Puestos, "cpue_id", "cpue_descripcion", tmp_Cot_Fase_Insumo.ctpfi_cfas_id); return(View(tmp_Cot_Fase_Insumo)); }
// GET: Comercializacion/Tmp_Propuesta_Fase_Puesto/Create public ActionResult Create(int?id) { List <object> resultado = new List <object>(); CultureInfo gt = new CultureInfo("es-GT"); int m = DateTime.Now.Month; int a = DateTime.Now.Year; Decimal total = 0; Decimal totalInsList = 0; Decimal totalInsNew = 0; List <Pt_Puesto_Insumos> puestoInsumos; Pt_Costos_Fijos_Mes_Anio costosFijosMN = db.Pt_Costos_Fijos_Mes_Anio.Where(x => x.activo && !x.eliminado && x.ccfma_anio == a && x.ccfma_mes == m).SingleOrDefault(); Pt_Cantidad_Planilla_Mes_Anio planillaMN = db.Pt_Cantidad_Planilla_Mes_Anio.Where(x => x.activo && !x.eliminado && x.ccpma_anio == a && x.ccpma_mes == m).SingleOrDefault(); ViewBag.costosFijos = costosFijosMN; ViewBag.planillaMes = planillaMN; Pt_Fases_Cotizacion faseCotizacion = db.Pt_Fases_Cotizacion.Find(id); Pt_Tmp_Cotizacion_Fase_Margen_Conf margenConf = db.Pt_Tmp_Cotizacion_Fase_Margen_Conf.Where(x => x.activo && !x.eliminado && x.ctcfm_cfas_id == faseCotizacion.cfas_id).SingleOrDefault(); if (margenConf == null) { ViewBag.margenFase = 0; } else { ViewBag.margenFase = margenConf.ctcfm_margen; } List <Pt_Puestos> puestos = faseCotizacion.Pt_Tmp_Propuesta_Fase_Puesto.Where(tpfp => tpfp.ctpf_cfas_id == id && tpfp.activo && !tpfp.eliminado).Select(tpfp => tpfp.Pt_Puestos).ToList(); List <Pt_Tmp_Cotizacion_Fase_Insumos> insumos = faseCotizacion.Pt_Tmp_Cotizacion_Fase_Insumos.Where(tpfp => tpfp.ctpfi_cfas_id == id && tpfp.activo && !tpfp.eliminado).ToList(); List <Pt_Tmp_Cotizacion_Fase_Insumos_New> listInsertInsumos = faseCotizacion.Pt_Tmp_Cotizacion_Fase_Insumos_New.Where(tpfp => tpfp.ctpfin_cfas_id == id && tpfp.activo && !tpfp.eliminado).ToList(); foreach (var ins in insumos) { if (ins.ctpfi_cantidad != null && ins.Pt_Insumos.cins_precio_venta != null && ins.Pt_Insumos.cins_porcentaje_depreciacion != null) { totalInsList += (((ins.ctpfi_cantidad.Value * ins.Pt_Insumos.cins_precio_venta.Value) * (ins.Pt_Insumos.cins_porcentaje_depreciacion.Value / 100))); } } foreach (var ins in listInsertInsumos) { if (ins.ctpfin_cantidad != null && ins.ctpfin_precio_venta != null && ins.ctpfin_porcentaje_depreciacion != null) { totalInsNew += (((ins.ctpfin_cantidad.Value * ins.ctpfin_precio_venta.Value) * (ins.ctpfin_porcentaje_depreciacion.Value / 100))); } } foreach (var p in puestos) { puestoInsumos = db.Pt_Puesto_Insumos.Where(pi => pi.cpin_cpue_id == p.cpue_id && pi.activo && !pi.eliminado).ToList(); foreach (var sumTotal in puestoInsumos.Where(x => x.activo && !x.eliminado)) { total += (((sumTotal.cpin_cantidad.Value) * (sumTotal.Pt_Insumos.cins_precio_costo.Value))); } ViewBag.sumtotal = total.ToString("c", gt); ViewBag.sumtotal2 = total; } ViewBag.totalIns = (totalInsList + totalInsNew).ToString("c", gt); ViewBag.totalIns2 = (totalInsList + totalInsNew); //ViewBag.total = total.ToString("c", gt); //List<Pt_Pagos_Puesto> pagosPuesto = faseCotizacion.Pt_Tmp_Propuesta_Fase_Puesto.Where(tpfp => tpfp.ctpf_cpue_id.HasValue && tpfp.activo && !tpfp.eliminado).Select(s => s.Pt_Puestos.Pt_Pagos_Puesto).ToList(); List <Pt_Tmp_Propuesta_Fase_Puesto> temp = db.Pt_Tmp_Propuesta_Fase_Puesto.Where(t => t.ctpf_cfas_id == id && t.activo && !t.eliminado).ToList(); ViewBag.temp = puestos.Select(s => s.Pt_Tmp_Propuesta_Fase_Puesto).ToList(); ViewBag.fase = faseCotizacion; ViewBag.costos = new SelectList(db.Pt_Insumos.Where(ins => ins.activo && !ins.eliminado).OrderBy(x => x.cins_descripcion), "cins_id", "cins_descripcion"); ViewBag.puesto = puestos; ViewBag.listInsertIns = listInsertInsumos; ViewBag.insumoList = insumos; ViewBag.pagosPuesto = puestos.Select(s => s.Pt_Pagos_Puesto).ToList(); ViewBag.ctpf_cfas_id = new SelectList(db.Pt_Fases_Cotizacion.Where(fc => fc.cfas_id == id), "cfas_id", "cfas_nombre"); ViewBag.ctpf_cpue_id = new SelectList(db.Pt_Puestos, "cpue_id", "cpue_descripcion"); return(View()); }