Exemplo n.º 1
0
        public ResultAndError <AlbaranCompra> Add(AlbaranCompra c)
        {
            ResultAndError <AlbaranCompra> result = new ResultAndError <AlbaranCompra>();

            try
            {
                db.AlbaranCompras.Add(c);
                db.SaveChanges();
                return(result.AddResult(c));
            }
            catch (Exception e)
            {
                return(result.AddError(e, HttpStatusCode.InternalServerError));
            }
        }
Exemplo n.º 2
0
        public bool DeleteMulti(IEnumerable <string> AlbaranCompras)
        {
            List <AlbaranCompra> oAlbaran = new List <AlbaranCompra>();

            foreach (string AlbaranComprasNo in AlbaranCompras)
            {
                AlbaranCompra oAlbaranCompras = Get(AlbaranComprasNo);
                if (oAlbaranCompras != null)
                {
                    oAlbaran.Add(oAlbaranCompras);
                }
            }
            db.AlbaranCompras.RemoveRange(oAlbaran);
            db.SaveChanges();
            return(true);
        }
Exemplo n.º 3
0
 public bool UpdateMulti(IEnumerable <AlbaranCompra> oAlbaranCompras, bool insertIfNoExists = false)
 {
     foreach (AlbaranCompra albaran in oAlbaranCompras)
     {
         AlbaranCompra old = Get(albaran.No);
         if (old == null && insertIfNoExists)
         {
             Add(albaran);
         }
         else
         {
             db.Entry(old).CurrentValues.SetValues(albaran);
         }
     }
     db.SaveChanges();
     return(true);
 }
Exemplo n.º 4
0
        public ResultAndError <bool> UpdateReadingDate(IEnumerable <string> centersNo, DateTimeOffset readingDate)
        {
            ResultAndError <bool> result = new ResultAndError <bool>();

            try
            {
                foreach (string no in centersNo)
                {
                    AlbaranCompra oAlbaranCompras = Get(no);
                    oAlbaranCompras.ReadingDate = readingDate;
                    db.SaveChanges();
                }
                return(result.AddResult(true));
            }
            catch (Exception e)
            {
                return(result.AddError(e, HttpStatusCode.InternalServerError));
            }
        }
Exemplo n.º 5
0
        public ResultAndError <bool> Delete(string id)
        {
            ResultAndError <bool> result = new ResultAndError <bool>();

            try
            {
                AlbaranCompra AlbaranCompras = Get(id);
                if (AlbaranCompras == null)
                {
                    return(result.AddError("No se encontro la tarifa con el id " + id));
                }
                db.AlbaranCompras.Remove(AlbaranCompras);
                db.SaveChanges();
                return(result.AddResult(true));
            }
            catch (Exception e)
            {
                return(result.AddError(e, HttpStatusCode.InternalServerError));
            }
        }
Exemplo n.º 6
0
        public ResultAndError <AlbaranCompra> Update(AlbaranCompra cr, bool insertIfNoExists = false)
        {
            ResultAndError <AlbaranCompra> result = new ResultAndError <AlbaranCompra>();

            try
            {
                AlbaranCompra old = Get(cr.No);
                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));
            }
        }
Exemplo n.º 7
0
        public void AnularAlbaran(AlbaranCompra albaran)
        {
            //Actualizamos el albaran para ponerlo anulado
            albaran.Anulado = true;
            Update(albaran);
            //Obtenemos el pedido mediante OrderNo
            Document oPedido = hoBS.Get(Convert.ToInt32(albaran.OrderNo));

            //Establecemos el pedido a cerrado
            oPedido.Estado = 0; //Preguntar que estado seria
            foreach (Line line in oPedido.Lines)
            {
                foreach (AlbaranLinea albaranLinea in albaran.AlbaranLineas)
                {
                    if (line.LineNo.ToString() == albaranLinea.OrderLineNo)
                    {
                        //sumamos la cantidad recibida a la cantidad pendiente
                        line.OutstandingQuantity += albaranLinea.QuantityReceived;
                    }
                }
                iBS.Update(line);
            }
        }
Exemplo n.º 8
0
 public AlbaranCompra_View(AlbaranCompra a)
 {
     No = a.No;
     BuyFromVendorNo        = a.BuyFromVendorNo ?? "";
     VendorShipmentNo       = a.VendorShipmentNo ?? "";
     PostingDate            = a.PostingDate ?? DateTimeOffset.MinValue;
     OrderDate              = a.OrderDate ?? DateTimeOffset.MinValue;
     ShortcutDimension1Code = a.ShortcutDimension1Code ?? "";
     ShortcutDimension2Code = a.ShortcutDimension2Code ?? "";
     BuyFromVendorName      = a.BuyFromVendorName ?? "";
     BuyFromVendorName2     = a.BuyFromVendorName2 ?? "";
     BuyFromAddress         = a.BuyFromAddress ?? "";
     BuyFromAddress2        = a.BuyFromAddress2 ?? "";
     BuyFromCity            = a.BuyFromCity ?? "";
     BuyFromContact         = a.BuyFromContact ?? "";
     BuyFromPostCode        = a.BuyFromPostCode ?? "";
     BuyFromCounty          = a.BuyFromCounty ?? "";
     Amount        = a.Amount ?? 0;
     ReadingDate   = a.ReadingDate ?? DateTimeOffset.MinValue;
     NonConform    = a.NonConform ?? false;
     Anulado       = a.Anulado ?? false;
     OrderNo       = a.OrderNo ?? "";
     AlbaranLineas = a.AlbaranLineas;
 }
 public IActionResult UpdAlbaranCompra([FromBody] AlbaranCompra AlbaranCompra, bool insertIfNoExists = false)
 {
     return(Ok(aBS.Update(AlbaranCompra, insertIfNoExists)));
 }
 public IActionResult AnularAlbaran([FromBody] AlbaranCompra albaran)
 {
     aBS.AnularAlbaran(albaran);
     return(Ok());
 }
Exemplo n.º 11
0
        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);
            }
        }