public ResultAndError <AlbaranLinea> Add(AlbaranLinea c) { ResultAndError <AlbaranLinea> result = new ResultAndError <AlbaranLinea>(); try { db.AlbaranLineas.Add(c); db.SaveChanges(); return(result.AddResult(c)); } catch (Exception e) { return(result.AddError(e, HttpStatusCode.InternalServerError)); } }
public bool DeleteMulti(IEnumerable <KeyValuePair <string, int> > AlbaranLineas) { List <AlbaranLinea> oAlbaranLineas = new List <AlbaranLinea>(); foreach (KeyValuePair <string, int> AlbaranLineaNo in AlbaranLineas) { AlbaranLinea oAlbaranLinea = Get(AlbaranLineaNo.Value, AlbaranLineaNo.Key); if (oAlbaranLinea != null) { oAlbaranLineas.Add(oAlbaranLinea); } } db.AlbaranLineas.RemoveRange(oAlbaranLineas); db.SaveChanges(); return(true); }
public bool UpdateMulti(IEnumerable <AlbaranLinea> oAlbaranLineas, bool insertIfNoExists = false) { foreach (AlbaranLinea AlbaranLinea in oAlbaranLineas) { AlbaranLinea old = Get(AlbaranLinea.No, AlbaranLinea.AlbaranCompraNo); if (old == null && insertIfNoExists) { Add(AlbaranLinea); } else { db.Entry(old).CurrentValues.SetValues(AlbaranLinea); } } db.SaveChanges(); return(true); }
public AlbaranLinea_View(AlbaranLinea a) { AlbaranCompraNo = a.AlbaranCompraNo; No = a.No; ProductNo = a.ProductNo ?? ""; Description = a.Description ?? ""; UnitOfMeasure = a.UnitOfMeasure ?? ""; Quantity = a.Quantity ?? 0; DirectUnitCost = a.DirectUnitCost ?? 0; VAT = a.VAT ?? 0; LineDiscount = a.LineDiscount ?? 0; Amount = a.Amount ?? 0; AmountIncludingVAT = a.AmountIncludingVAT ?? 0; ExpectedReceiptdate = a.ExpectedReceiptdate ?? DateTimeOffset.MinValue; QuantityReceived = a.QuantityReceived ?? 0; ReadingDate = a.ReadingDate ?? DateTimeOffset.MinValue; OrderNo = a.OrderNo ?? ""; OrderLineNo = a.OrderLineNo ?? ""; ExcessReception = a.ExcessReception ?? false; }
public ResultAndError <bool> Delete(int id, string albaranNo) { ResultAndError <bool> result = new ResultAndError <bool>(); try { AlbaranLinea AlbaranLinea = Get(id, albaranNo); if (AlbaranLinea == null) { return(result.AddError("No se encontro la tarifa con el id " + id)); } db.AlbaranLineas.Remove(AlbaranLinea); db.SaveChanges(); return(result.AddResult(true)); } catch (Exception e) { return(result.AddError(e, HttpStatusCode.InternalServerError)); } }
public ResultAndError <AlbaranLinea> Update(AlbaranLinea cr, bool insertIfNoExists = false) { ResultAndError <AlbaranLinea> result = new ResultAndError <AlbaranLinea>(); try { AlbaranLinea old = Get(cr.No, cr.AlbaranCompraNo); if (old == null && insertIfNoExists) { return(Add(cr)); } db.Entry(old).CurrentValues.SetValues(cr); db.SaveChanges(); return(result.AddResult(cr)); } catch (Exception e) { return(result.AddError(e, HttpStatusCode.InternalServerError)); } }
public ResultAndError <bool> UpdateReadingDate(IEnumerable <KeyValuePair <string, int> > albaranes, DateTimeOffset readingDate) { ResultAndError <bool> result = new ResultAndError <bool>(); try { foreach (KeyValuePair <string, int> albaran in albaranes) { AlbaranLinea oAlbaranLinea = Get(albaran.Value, albaran.Key); if (oAlbaranLinea == null) { continue; } oAlbaranLinea.ReadingDate = readingDate; db.SaveChanges(); } return(result.AddResult(true)); } catch (Exception e) { return(result.AddError(e, HttpStatusCode.InternalServerError)); } }
public IActionResult UpdAlbaranLinea([FromBody] AlbaranLinea AlbaranLinea, bool insertIfNoExists = false) { return(Ok(aBS.Update(AlbaranLinea, insertIfNoExists))); }
public void RecepcionMercancia(Document oOrder, DateTimeOffset albaranDate, bool nonConform) { //Comprobamos los precios de los productos con la fecha del albaran UpdateProductPrice(oOrder.Lines, oOrder.BuyFromVendorNo, albaranDate); //TODO Cuando el usuario valide la información, el sistema comprobará que existe el número de albarán y la fecha del albarán en la cabecera del pedido o lo solicitará AlbaranCompra oAlbaran = new AlbaranCompra() { Amount = oOrder.Amount, BuyFromAddress = oOrder.BuyFromAddress, BuyFromAddress2 = oOrder.BuyFromAddress2, BuyFromCity = oOrder.BuyFromCity, BuyFromContact = oOrder.BuyFromContact, BuyFromCounty = oOrder.BuyFromCounty, BuyFromPostCode = oOrder.BuyFromPostCode, BuyFromVendorName = oOrder.BuyFromVendorName, BuyFromVendorName2 = oOrder.BuyFromVendorName2, BuyFromVendorNo = oOrder.BuyFromVendorNo, OrderDate = oOrder.OrderDate, PostingDate = albaranDate, ShortcutDimension1Code = oOrder.Centro, ShortcutDimension2Code = oOrder.Zona, VendorShipmentNo = oOrder.VendorShipmentNo, OrderNo = oOrder.No.ToString(), No = "A" + oOrder.No,//añadir numerico NonConform = nonConform }; //Creamos el albaran compra Update(oAlbaran, true); //Actualizamos la cantidad recibida de las lineas decimal?totalQuantity = 0; foreach (Line line in oOrder.Lines) { line.OutstandingQuantity -= line.QuantityReceived; line.Product.StockActual = line.OutstandingQuantity; totalQuantity += line.OutstandingQuantity; //Añadimos el stock al producto prBS.Update(line.Product); AlbaranLinea oAlbaranLinea = new AlbaranLinea() { AlbaranCompraNo = oAlbaran.No, Amount = line.Amount, AmountIncludingVAT = line.AmountIncludingVAT, Description = line.Description, DirectUnitCost = line.DirectUnitCost, ExpectedReceiptdate = line.ExpectedReceiptDate, LineDiscount = line.LineDiscount, OrderLineNo = line.LineNo.ToString(), OrderNo = line.DocumentNo.ToString(), ProductNo = line.No, Quantity = line.Quantity, QuantityReceived = line.QuantityReceived, UnitOfMeasure = line.UnitOfMeasure, VAT = line.VAT, //Comprobamos que la cantidad recibida es mayor o inferior a la pedida ExcessReception = CalculateExcessReception(line) }; //POnemos a 0 la cantidad recibida de la linea line.QuantityReceived = 0; //Actualizamos la linea ResultAndError <Line> oLine = iBS.Update(line); //Creamos el albaranlinea ResultAndError <AlbaranLinea> albaranLinea = aBS.Update(oAlbaranLinea, true); } //TODO Si la cantidad pendiente de todas las líneas del pedido no es cero después de crear el albarán, el sistema dejará el pedido como pendiente, y en el caso de que no vaya a recibirla, el usuario podrá cerrar el pedido, llevándolo entonces al histórico de pedidos. if (totalQuantity == 0) { //Si el total es 0 mandamos el pedido a historico hBS.CloseOrder(oOrder); } else { //Si no es 0 dejamos el pedido como pendiente y dejamos que el usuario decida si cerrarlo o no oOrder.Estado = 0; hoBS.Update(oOrder); } }