public void InsertPurchaseReturn(PurchaseReturnColumnModel model)
        {
            try
            {
                using (this.unitOfWork)
                {
                    PurchaseReturn item = new PurchaseReturn()
                    {
                        MemoNumber       = model.MemoNumber,
                        CustomerId       = model.CustomerId,
                        ReturnDate       = model.ReturnDate,
                        AmountReturn     = model.AmountReturn,
                        Adjustment       = model.Adjustment,
                        TotalDebitAmount = model.TotalDebitAmount,
                        Remarks          = model.Remarks,
                        IsDeleted        = model.IsDeleted,
                        RecordedBy       = model.RecordedByUser,
                        ApprovedBy       = model.ApprovedByUser,
                        AmountUsed       = 0
                    };

                    if (model.Details.Count > 0)
                    {
                        foreach (PurchaseReturnDetailModel d in model.Details)
                        {
                            PurchaseReturnDetail detail = new PurchaseReturnDetail()
                            {
                                PartDetailId = d.PartDetailId,
                                PONumber     = d.PONumber,
                                Quantity     = d.Quantity,
                                UnitPrice    = d.UnitPrice,
                                TotalAmount  = d.TotalAmount,
                                Balance      = d.TotalAmount
                            };

                            item.PurchaseReturnDetail.Add(detail);

                            AutoPartDetail autoDetail = db.AutoPartDetail.FirstOrDefault(a => a.Id == d.PartDetailId);
                            if (autoDetail != null)
                            {
                                autoDetail.Quantity -= d.Quantity;
                            }
                        }
                    }

                    this.unitOfWork.Context.AddToPurchaseReturn(item);

                    string action = string.Format("Added New Purchase Return - {0}", item.MemoNumber);
                    this.actionLogController.AddToLog(action, UserInfo.UserId);

                    this.unitOfWork.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #2
0
        public ActionResult Add([FromBody] JObject values)
        {
            try
            {
                GenHelper.WriteLog("[Log]", "[" + securityProvider.GetUserName() + "]" + controllername + "-Post:[" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "]");

                PurchaseReturnDetail employee = objectSpace.CreateObject <PurchaseReturnDetail>();
                JsonParser.ParseJObjectXPO <PurchaseReturnDetail>(values, employee, objectSpace);
                objectSpace.CommitChanges();
                return(Ok(employee));
            }
            catch (Exception ex)
            {
                GenHelper.WriteLog("[Error]", "[" + securityProvider.GetUserName() + "]" + controllername + "-Post:[" + ex.Message + "][" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "]");
                throw new Exception(ex.Message);
            }
        }
Beispiel #3
0
        public ActionResult Get(int id)
        {
            try
            {
                GenHelper.WriteLog("[Log]", "[" + securityProvider.GetUserName() + "]" + controllername + "-Get(" + id.ToString() + "):[" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "]");

                PurchaseReturnDetail existing = objectSpace.GetObjectByKey <PurchaseReturnDetail>(id);
                if (existing == null)
                {
                    NotFound();
                }
                return(Ok(existing));
            }
            catch (Exception ex)
            {
                GenHelper.WriteLog("[Error]", "[" + securityProvider.GetUserName() + "]" + controllername + "-Get(" + id.ToString() + "):[" + ex.Message + "][" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "]");
                throw new Exception(ex.Message);
            }
        }
Beispiel #4
0
        public ActionResult Update(int id, [FromBody] JObject values)
        {
            try
            {
                GenHelper.WriteLog("[Log]", "[" + securityProvider.GetUserName() + "]" + controllername + "-Put(" + id.ToString() + "):[" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "]");

                PurchaseReturnDetail employee = objectSpace.GetObjectByKey <PurchaseReturnDetail>(id);
                if (employee != null)
                {
                    JsonParser.ParseJObjectXPO <PurchaseReturnDetail>(values, employee, objectSpace);
                    objectSpace.CommitChanges();
                    return(Ok(employee));
                }
                return(NotFound());
            }
            catch (Exception ex)
            {
                GenHelper.WriteLog("[Error]", "[" + securityProvider.GetUserName() + "]" + controllername + "-Put(" + id.ToString() + "):[" + ex.Message + "][" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "]");
                throw new Exception(ex.Message);
            }
        }
Beispiel #5
0
        public string PurchaseReturnSelect(long purchase_return_id)
        {
            try
            {
                if (purchase_return_id == 0)
                {
                    return("'Null'");
                }

                List <PurchaseReturn> _salesReturn = new List <PurchaseReturn>();

                var data = Database._PurchasedReturnSelect(purchase_return_id);

                foreach (var d in data)
                {
                    PurchaseReturn _sr = new PurchaseReturn();
                    _sr.ID           = d.ID;
                    _sr.SupplierID   = d.SupplierID.Value;
                    _sr.SupplierName = d.SupplierName;
                    _sr.Address      = d.Address;
                    _sr.ForwarderID  = d.DeliveryToID.Value;
                    _sr.SalesmanID   = d.SalesmanID.Value;
                    _sr.PoNO         = d.PoNo;
                    _sr.TermID       = d.TermID.Value;
                    _sr.RefNo        = d.RefNo;
                    _sr.RefSerial    = d.RefNoSerial;
                    _sr.Date         = d.CreatedDate.Value;
                    _sr.Notes        = d.Notes;
                    _sr.TotalAmount  = d.TotalAmount.Value;

                    var salesReturnDetails = Database._PurchasedReturnDetailsSelect(d.ID);
                    List <PurchaseReturnDetail> purchaseReturnDetail = new List <PurchaseReturnDetail>();
                    foreach (var srd in salesReturnDetails)
                    {
                        PurchaseReturnDetail _srd = new PurchaseReturnDetail();
                        _srd.ID           = srd.ID;
                        _srd.ProductID    = srd.ProductID.Value;
                        _srd.ProductName  = srd.ProductName;
                        _srd.LocationID   = srd.LocationID.Value;
                        _srd.LocationName = srd.LocationName;
                        _srd.Quantity     = srd.Quantity.Value;
                        _srd.Unit         = srd.UnitName;
                        _srd.UnitPrice    = srd.UnitPrice.Value;
                        _srd.Discount     = srd.Discount;
                        _srd.Amount       = srd.Amount.Value;
                        purchaseReturnDetail.Add(_srd);
                    }

                    _sr.PurchaseReturnDetails = purchaseReturnDetail;

                    //--------------------------
                    var salesReturnPayment            = Database._PurchasedPaymentReturns.Where(x => x.PurchasedReturnID == d.ID);
                    List <ReturnApplyList> ApplyLists = new List <ReturnApplyList>();
                    foreach (var srp in salesReturnPayment)
                    {
                        ReturnApplyList _al = new ReturnApplyList();
                        _al.PurchaseID  = srp.PurchasedID.Value;
                        _al.RefNo       = Database._PurchasedInvoices.SingleOrDefault(x => x.ID == srp.PurchasedID).RefNo + Database._PurchasedInvoices.SingleOrDefault(x => x.ID == srp.PurchasedID).RefNoSerial;
                        _al.Date        = Database._PurchasedInvoices.SingleOrDefault(x => x.ID == srp.PurchasedID).CreatedDate.Value;
                        _al.Description = "Sales";
                        var salesman_id = Database._PurchasedInvoices.SingleOrDefault(x => x.ID == srp.PurchasedID.Value).Salesman;
                        _al.Salesman      = Database._Employees.SingleOrDefault(x => x.ID == salesman_id).EmployeeName;
                        _al.Balance       = (Database._PurchasedInvoices.SingleOrDefault(x => x.ID == srp.PurchasedID).SubTotal.Value - srp.Amount.Value);
                        _al.AppliedAmount = srp.Amount.Value;

                        ApplyLists.Add(_al);
                    }

                    _sr.ApplyLists = ApplyLists;



                    _salesReturn.Add(_sr);
                }


                if (_salesReturn.Count <= 0)
                {
                    return("'Null'");
                }
                else
                {
                    return(JsonConvert.SerializeObject(_salesReturn, Newtonsoft.Json.Formatting.None));
                }
            }
            catch (Exception)
            {
                return(string.Empty);
            }
        }
        public ReturnValue SaveReturnDetail(string no, List <ReturnDetailModel> list, int supplier, string remark, string deport)
        {
            using (var c = new InvoicingContext())
            {
                try
                {
                    var model = c.PurchaseReturns.FirstOrDefault(p => p.returnNo == no && p.status == 0);
                    if (model == null)
                    {
                        return new ReturnValue {
                                   status = false, message = "不存在采购退单"
                        }
                    }
                    ;
                    if (list == null || list.Count < 1)
                    {
                        return new ReturnValue {
                                   status = false, message = "不存在采购退单"
                        }
                    }
                    ;
                    foreach (var item in list)
                    {
                        if (item.type == "")
                        {
                            continue;
                        }

                        if (item.type == "delete")
                        {
                            var d = c.PurchaseReturnDetails.FirstOrDefault(p => p.detailSn == item.returnSn);
                            if (d != null)
                            {
                                c.PurchaseReturnDetails.Remove(d);
                            }
                        }
                        else if (item.type == "edit")
                        {
                            var d = c.PurchaseReturnDetails.FirstOrDefault(p => p.detailSn == item.returnSn);
                            if (d != null)
                            {
                                d.materialNo     = item.materialNo;
                                d.returnAmount   = item.returnAmount;
                                d.remark         = item.remark;
                                d.depotId        = item.depotId;
                                c.Entry(d).State = EntityState.Modified;
                            }
                        }
                        else if (item.type == "add")
                        {
                            PurchaseReturnDetail d = new PurchaseReturnDetail();
                            var order = c.PurchaseDetails.FirstOrDefault(p => p.detailSn == item.purchaseDetailSn);
                            //var stockin = c.StockInDetails.FirstOrDefault(p => p.detailSn == item.stockinDetailSn);
                            //stockin.returnAmount += item.returnAmount;
                            d.materialNo       = item.materialNo;
                            d.returnAmount     = item.returnAmount;
                            d.returnNo         = no;
                            d.depotId          = item.depotId;
                            d.remark           = item.remark;
                            d.buyPrice         = order.poPrice;
                            d.purchaseDetailSn = item.purchaseDetailSn;
                            d.purchaseNo       = item.purchaseNo;
                            d.stockinDetailSn  = item.stockinDetailSn;
                            d.stockinNo        = item.stockinNo;
                            c.PurchaseReturnDetails.Add(d);
                        }
                    }
                    #region 申请单
                    if (model.remark != remark || model.deportStaff != deport)
                    {
                        model.remark = remark;

                        model.deportStaff    = deport;
                        c.Entry(model).State = EntityState.Modified;
                    }
                    #endregion
                    c.SaveChanges(); return(new ReturnValue {
                        status = true, message = ""
                    });
                }
                catch (Exception ex)
                {
                    return(new ReturnValue {
                        status = false, message = "保存失败:" + ex.Message
                    });
                }
            }
        }
Beispiel #7
0
        public IActionResult GenPUR([FromBody] JObject values)
        {
            try
            {
                GenHelper.WriteLog("[Log]", "[" + securityProvider.GetUserName() + "]" + controllername + "-GenPUR:[" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "]");
                GenHelper.WriteLog("[Json]", "[" + securityProvider.GetUserName() + "]" + controllername + "-GenPUR:[" + Environment.NewLine + values.ToString() + Environment.NewLine + "][" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "]");

                //
                //JsonParser.ParseJObjectXPO<PurchaseDelivery>(values, employee, objectSpace);
                string         temp = "";
                JToken         token;
                PurchaseReturn employee = objectSpace.CreateObject <PurchaseReturn>();
                token              = values["CardCode"];
                temp               = token["BoKey"].ToString();
                employee.CardCode  = objectSpace.FindObject <vwBusinessPartners>(CriteriaOperator.Parse("BoKey=?", temp));
                employee.NumAtCard = values["NumAtCard"].ToString();

                //JsonPopulateObjectHelper.PopulateObjectWODetail(values.ToString(), employee.Session, employee);

                string detalclassname = "PurchaseReturnDetail";
                int    intkeyvalue    = -1;
                JArray jarray         = (JArray)values[detalclassname];
                int    cnt            = 0;
                foreach (JObject Jdtl in jarray.Children())
                {
                    if (Jdtl.ContainsKey("Oid"))
                    {
                        if (int.TryParse(Jdtl["Oid"].ToString(), out intkeyvalue))
                        {
                            PurchaseReturnDetail dtl = objectSpace.GetObjectByKey <PurchaseReturnDetail>(intkeyvalue);
                            cnt++;
                            dtl.VisOrder = cnt;
                            dtl.VerNo    = 1;
                            employee.PurchaseReturnDetail.Add(dtl);
                        }
                        else
                        {
                            GenHelper.WriteLog("[Error]", "[" + securityProvider.GetUserName() + "]" + controllername + "-GenPUR:[Details Key value is invalid][" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "]");
                            throw new Exception("Details Key value is invalid");
                        }
                    }
                    else
                    {
                        GenHelper.WriteLog("[Error]", "[" + securityProvider.GetUserName() + "]" + controllername + "-GenPUR:[Details Key Column Not found][" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "]");
                        throw new Exception("Details Key Column Not found");
                    }
                }
                if (employee.DocTypeSeries == null)
                {
                    GenHelper.WriteLog("[Error]", "[" + securityProvider.GetUserName() + "]" + controllername + "-GenPUR:[Document series is not found][" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "]");
                    throw new Exception("Document series is not found");
                }
                employee.DocStatus.AddDocStatus(DocStatus.Accepted, "WebApi Generated");
                employee.DocStatus.CurrDocStatus = DocStatus.Accepted;
                employee.VerNo = 1;
                employee.AssignDocNumber();
                objectSpace.CommitChanges();
                return(Ok(employee.DocNum));
            }
            catch (Exception ex)
            {
                GenHelper.WriteLog("[Error]", "[" + securityProvider.GetUserName() + "]" + controllername + "-GenPUR:[" + ex.Message + "][" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "]");
                throw new Exception(ex.Message);
            }
        }
Beispiel #8
0
        private void Controller_ObjectCreated(object sender, ObjectCreatedEventArgs e)
        {
            ListView lv = ((ListView)View);

            if (lv.CollectionSource is PropertyCollectionSource)
            {
                PropertyCollectionSource collectionSource = (PropertyCollectionSource)lv.CollectionSource;
                if (collectionSource.MasterObject != null)
                {
                    int minvalue    = 0;
                    int maxvisorder = 0;

                    if (collectionSource.MasterObjectType == typeof(StockTransferRequest) && e.CreatedObject.GetType() == typeof(StockTransferRequestDetail))
                    {
                        StockTransferRequest       masterobject  = (StockTransferRequest)collectionSource.MasterObject;
                        StockTransferRequestDetail currentobject = (StockTransferRequestDetail)e.CreatedObject;

                        copyCon.GetStockDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder);

                        currentobject.Oid      = minvalue;
                        currentobject.VisOrder = maxvisorder;

                        if (sDtlS != null)
                        {
                            copyCon.copyClassStockTransferDocumentDetail(sDtlS, currentobject, e.ObjectSpace);
                        }
                    }
                    else if (collectionSource.MasterObjectType == typeof(PurchaseOrder))
                    {
                        PurchaseOrder       masterobject  = (PurchaseOrder)collectionSource.MasterObject;
                        PurchaseOrderDetail currentobject = (PurchaseOrderDetail)e.CreatedObject;

                        copyCon.GetDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder);

                        currentobject.Oid      = minvalue;
                        currentobject.VisOrder = maxvisorder;
                        currentobject.DocCur   = currentobject.Session.GetObjectByKey <vwCurrency>(masterobject.DocCur.BoKey);

                        if (sDtl != null)
                        {
                            copyCon.copyClassDocumentDetail(sDtl, currentobject, e.ObjectSpace);
                        }
                    }
                    else if (collectionSource.MasterObjectType == typeof(PurchaseRequest))
                    {
                        PurchaseRequest       masterobject  = (PurchaseRequest)collectionSource.MasterObject;
                        PurchaseRequestDetail currentobject = (PurchaseRequestDetail)e.CreatedObject;

                        copyCon.GetDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder);

                        currentobject.Oid      = minvalue;
                        currentobject.VisOrder = maxvisorder;

                        if (masterobject.DocCur != null)
                        {
                            currentobject.DocCur = currentobject.Session.GetObjectByKey <vwCurrency>(masterobject.DocCur.BoKey);
                        }

                        if (sDtl != null)
                        {
                            copyCon.copyClassDocumentDetail(sDtl, currentobject, e.ObjectSpace);
                        }
                    }
                    else if (collectionSource.MasterObjectType == typeof(PurchaseDelivery))
                    {
                        PurchaseDelivery       masterobject  = (PurchaseDelivery)collectionSource.MasterObject;
                        PurchaseDeliveryDetail currentobject = (PurchaseDeliveryDetail)e.CreatedObject;

                        copyCon.GetDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder);

                        currentobject.Oid      = minvalue;
                        currentobject.VisOrder = maxvisorder;

                        if (masterobject.DocCur != null)
                        {
                            currentobject.DocCur = currentobject.Session.GetObjectByKey <vwCurrency>(masterobject.DocCur.BoKey);
                        }

                        if (sDtl != null)
                        {
                            copyCon.copyClassDocumentDetail(sDtl, currentobject, e.ObjectSpace);
                        }
                    }
                    else if (collectionSource.MasterObjectType == typeof(PurchaseReturn))
                    {
                        PurchaseReturn       masterobject  = (PurchaseReturn)collectionSource.MasterObject;
                        PurchaseReturnDetail currentobject = (PurchaseReturnDetail)e.CreatedObject;

                        copyCon.GetDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder);

                        currentobject.Oid      = minvalue;
                        currentobject.VisOrder = maxvisorder;

                        if (masterobject.DocCur != null)
                        {
                            currentobject.DocCur = currentobject.Session.GetObjectByKey <vwCurrency>(masterobject.DocCur.BoKey);
                        }

                        if (sDtl != null)
                        {
                            copyCon.copyClassDocumentDetail(sDtl, currentobject, e.ObjectSpace);
                        }
                    }
                    else if (collectionSource.MasterObjectType == typeof(PurchaseQuotation))
                    {
                        PurchaseQuotation       masterobject  = (PurchaseQuotation)collectionSource.MasterObject;
                        PurchaseQuotationDetail currentobject = (PurchaseQuotationDetail)e.CreatedObject;

                        copyCon.GetDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder);

                        currentobject.Oid      = minvalue;
                        currentobject.VisOrder = maxvisorder;

                        if (masterobject.DocCur != null)
                        {
                            currentobject.DocCur = currentobject.Session.GetObjectByKey <vwCurrency>(masterobject.DocCur.BoKey);
                        }

                        if (sDtl != null)
                        {
                            copyCon.copyClassDocumentDetail(sDtl, currentobject, e.ObjectSpace);
                        }
                    }
                }
            }

            sDtl  = null;
            sDtlS = null;
        }
        public void UpdatePurchaseReturn(PurchaseReturnColumnModel model)
        {
            try
            {
                using (this.unitOfWork)
                {
                    var item = FetchPurchaseReturnById(model.Id);
                    if (item != null)
                    {
                        //Delete old details
                        if (item.PurchaseReturnDetail.Any())
                        {
                            foreach (var d in item.PurchaseReturnDetail.ToList())
                            {
                                AutoPartDetail detail = db.AutoPartDetail.FirstOrDefault(a => a.Id == d.PartDetailId);
                                detail.Quantity += d.Quantity;

                                foreach (var payment in d.PurchasePayments.ToList())
                                {
                                    item.AmountUsed -= payment.Amount;
                                    db.DeleteObject(payment);
                                }

                                db.DeleteObject(d);
                            }
                        }

                        item.MemoNumber       = model.MemoNumber;
                        item.CustomerId       = model.CustomerId;
                        item.ReturnDate       = model.ReturnDate;
                        item.AmountReturn     = model.AmountReturn;
                        item.Adjustment       = model.Adjustment;
                        item.TotalDebitAmount = model.TotalDebitAmount;
                        item.Remarks          = model.Remarks;
                        item.IsDeleted        = model.IsDeleted;
                        item.RecordedBy       = model.RecordedByUser;
                        item.ApprovedBy       = model.ApprovedByUser;

                        //Add the new items
                        if (model.Details.Count > 0)
                        {
                            foreach (PurchaseReturnDetailModel d in model.Details)
                            {
                                var autoPart = db.AutoPartDetail.FirstOrDefault(a => a.Id == d.PartDetailId);
                                autoPart.Quantity -= d.Quantity;

                                PurchaseReturnDetail detail = new PurchaseReturnDetail()
                                {
                                    PartDetailId = d.PartDetailId,
                                    PONumber     = d.PONumber,
                                    Quantity     = d.Quantity,
                                    UnitPrice    = d.UnitPrice,
                                    TotalAmount  = d.TotalAmount,
                                    Balance      = d.TotalAmount
                                };

                                item.PurchaseReturnDetail.Add(detail);
                            }
                        }
                    }

                    string action = string.Format("Updated Purchase Return - {0}", item.MemoNumber);
                    this.actionLogController.AddToLog(action, UserInfo.UserId);

                    this.unitOfWork.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }