public RequestHTTP finalizarPresupuesto(JObject cabydet) { var req = new RequestHTTP(); try { var jCabecera = (JObject)cabydet["cabecera"]; int punto = (int)jCabecera["punto"], empresaid = (int)jCabecera["empresa"]; var jDetalle = cabydet["lista"]; decimal bonifcli = (decimal)cabydet["bonifcli"]; presupc cabecera = armarCabecera(jCabecera, bonifcli); List <presupd> detalle = armarDetalle(jDetalle, cabecera, bonifcli); using (GestionEntities bd = new GestionEntities()) { bd.presupc.Add(cabecera); foreach (presupd p in detalle) { bd.presupd.Add(p); } var factu = bd.factura.Single(a => a.PUNTO == punto && a.EmpresaId == empresaid); bd.factura.Attach(factu); factu.PRESUP++; if (!Convert.ToBoolean(bd.SaveChanges())) { throw new Exception(); } req.objeto = new compi(cabecera.numero, cabecera.punto, cabecera.tipodoc, cabecera.letra, cabecera.id); return(req); } } catch (DbEntityValidationException dbEx) { StreamWriter sw = new StreamWriter("C:/Users/usuario/Desktop/error.txt"); //Close the file foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { sw.WriteLine("Property:" + validationError.PropertyName + " Error:" + validationError.ErrorMessage); } } sw.Close(); return(req.falla(new Exception())); } }
//finalizar presupuesto private List <presupd> armarDetalle(JToken lista, presupc cabecera, decimal bonifcli) { stocks p, item; List <presupd> detalles = new List <presupd>(); int empresaid = cabecera.empresa; for (int i = 0; i < lista.ToArray().Count(); i++) { if (lista[i]["asociado"].ToString().Contains("[")) { lista[i]["asociado"] = ""; } p = JsonConvert.DeserializeObject <stocks>(lista[i].ToString()); item = new stocks(p.cantidad, p.precioVenta, p.bonif, p.bonif1, p.impint, p.codpro, p.asociado, bonifcli, new DateTime(2019, 01, 01), p.detalle, empresaid); detalles.Add(new presupd(item, cabecera, i + 1)); } return(detalles); }
public presupd(stocks stock, presupc cabecera, int numerador) { var m = new MiProvee(); try { int id; List <artasoc> artasoc; decimal cotInicio; using (GestionEntities bd = new GestionEntities()) { cotInicio = bd.monedas.Single(a => a.codigo == stock.moneda).ncotiza; this.cotizacion = bd.monedas.Single(a => a.codigo == cabecera.monfac).ncotiza;//configen.GetConfigen().GnCotizaCl;//arregalar artasoc = bd.artasoc.Where(a => a.codpro == stock.codpro && a.componen == stock.asociado).ToList(); if (bd.presupd.Count() > 0) { id = bd.presupd.ToArray().Last().id; } else { id = 0; } if (artasoc.Count == 0) { this.canasoc = 0; } else { this.canasoc = artasoc.First().cantid *stock.cantidad; } } this.id = id; this.cabeceraid = cabecera.id; this.fecha = DateTime.Now; this.hora = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second); this.tipodoc = cabecera.tipodoc; this.letra = cabecera.letra; this.punto = cabecera.punto; this.numero = cabecera.numero; this.remito = cabecera.remito; this.codpro = stock.codpro; this.descri = stock.descri; this.cant = stock.cantidad; this.precio = stock.precioVenta; this.bonif = stock.bonif; this.bonif1 = stock.bonif1; this.prexcant = (this.precio * this.cant) - this.precio * this.cant * stock.bonif / 100 - this.precio * this.cant * stock.bonif1 / 100; this.ivartins = stock.getIvaIGeneral(ControladorTotales.getCTotales().getIvaTasaGral()); this.ivartinoi = stock.getIvaIDif(ControladorTotales.getCTotales().getIvaTasaGral()); this.bonito = stock.getBonifTotal(); this.nrocli = cabecera.nrocli; this.asociado = stock.asociado; this.cantenv = stock.cantenv; this.pedido = 0; //arregalar this.despacho = ""; //arregalar this.envase = stock.simboloEnvase; //arregalar; this.unimed = stock.unimed.ToString(); //arregalar this.pins = 21; //arregalar this.pnoi = 0; //arregalar this.deta = ""; //arregalar this.aprobados = 0; //arregalar this.detalle = stock.detalle; this.impint = stock.impint; this.precorig = 0;//arregalar this.ivaporc1 = stock.getIvaGral(ControladorTotales.getCTotales().getIvaTasaGral()); this.ivaporc2 = stock.getIvaDif(ControladorTotales.getCTotales().getIvaTasaGral()); this.moneda = cabecera.monfac; this.costo = stock.costo * stock.cantidad * (cotInicio / this.cotizacion); this.simbolo = cabecera.simbolo.Substring(0, 2); } catch (Exception) { } }