예제 #1
0
        private DbDeleteStatement GetQuery_DeleteQuery(ItemPurchaseLine _obj)
        {
            DbDeleteStatement clause = DbMgr.CreateDeleteClause();

            clause.DeleteFrom("ItemPurchaseLines").Criteria.IsEqual("ItemPurchaseLines", "ItemPurchaseLineID", _obj.ItemPurchaseLineID);

            return(clause);
        }
예제 #2
0
 protected override OpResult _Delete(ItemPurchaseLine _obj)
 {
     if (_obj == null)
     {
         return(OpResult.NotifyDeleteAction(OpResult.ResultStatus.ObjectIsNull, _obj, "ItemPurchaseLine object cannot be deleted as it is null"));
     }
     if (Exists(_obj))
     {
         ExecuteNonQuery(GetQuery_DeleteQuery(_obj));
         return(OpResult.NotifyDeleteAction(OpResult.ResultStatus.ExistsAndDeleted, _obj));
     }
     return(OpResult.NotifyDeleteAction(OpResult.ResultStatus.NotExists, _obj, "ItemPurchaseLine object cannot be deleted as it does not exist"));
 }
        public BOItemPurchaseLine(Accountant accountant, Purchase _purchase, ItemPurchaseLine _line, BOContext context)
            : base(accountant, _purchase, _line, context)
        {
            mObjectID           = BOType.BOItemPurchaseLine;
            mDataProxy          = _line.Clone() as ItemPurchaseLine;
            mDataProxy.Purchase = _purchase;

            if (mDataProxy.Purchase.IsTaxInclusive == "Y")
            {
                mPrice = mDataProxy.TaxInclusiveUnitPrice;
            }
            else
            {
                mPrice = mDataProxy.TaxExclusiveUnitPrice;
            }
        }
        private void StoreLines(Purchase _obj)
        {
            IList <PurchaseLine> lines = _obj.PurchaseLines;

            foreach (PurchaseLine line in lines)
            {
                RepositoryMgr.PurchaseLineMgr.Store(line);
                int?purchase_id      = line.PurchaseID;
                int?purchase_line_id = line.PurchaseLineID;
                if (line is ItemPurchaseLine)
                {
                    ItemPurchaseLine _line = line as ItemPurchaseLine;
                    _line.PurchaseID         = purchase_id;
                    _line.ItemPurchaseLineID = purchase_line_id;
                    RepositoryMgr.ItemPurchaseLineMgr.Store(_line);
                }
                else if (line is MiscPurchaseLine)
                {
                    MiscPurchaseLine _line = line as MiscPurchaseLine;
                    _line.PurchaseID         = purchase_id;
                    _line.MiscPurchaseLineID = purchase_line_id;
                    RepositoryMgr.MiscPurchaseLineMgr.Store(_line);
                }
                else if (line is ProfessionalPurchaseLine)
                {
                    ProfessionalPurchaseLine _line = line as ProfessionalPurchaseLine;
                    _line.PurchaseID = purchase_id;
                    _line.ProfessionalPurchaseLineID = purchase_line_id;
                    RepositoryMgr.ProfessionalPurchaseLineMgr.Store(_line);
                }
                else if (line is ServicePurchaseLine)
                {
                    ServicePurchaseLine _line = line as ServicePurchaseLine;
                    _line.PurchaseID            = purchase_id;
                    _line.ServicePurchaseLineID = purchase_line_id;
                    RepositoryMgr.ServicePurchaseLineMgr.Store(_line);
                }
                else if (line is TimeBillingPurchaseLine)
                {
                    TimeBillingPurchaseLine _line = line as TimeBillingPurchaseLine;
                    _line.PurchaseID = purchase_id;
                    _line.TimeBillingPurchaseLineID = purchase_line_id;
                    RepositoryMgr.TimeBillingPurchaseLineMgr.Store(_line);
                }
            }
        }
예제 #5
0
        protected override OpResult _Store(ItemPurchaseLine _obj)
        {
            if (_obj == null)
            {
                return(OpResult.NotifyStoreAction(OpResult.ResultStatus.ObjectIsNull, _obj, "ItemPurchaseLine object cannot be created as it is null"));
            }

            if (Exists(_obj))
            {
                ExecuteNonQuery(GetQuery_UpdateQuery(_obj));
                return(OpResult.NotifyStoreAction(OpResult.ResultStatus.Updated, _obj));
            }

            ExecuteNonQuery(GetQuery_InsertQuery(_obj));
            if (_obj.ItemPurchaseLineID == null)
            {
                _obj.ItemPurchaseLineID = DbMgr.GetLastInsertID();
            }
            _obj.FromDb = true;
            return(OpResult.NotifyStoreAction(OpResult.ResultStatus.Created, _obj));
        }
예제 #6
0
        private Dictionary <string, DbFieldEntry> GetQueryMap_StoreItemPurchaseLines(Purchase _purchase, ItemPurchaseLine _line)
        {
            bool is_header = (_line == null);
            Dictionary <string, DbFieldEntry> query_map = new Dictionary <string, DbFieldEntry>();

            bool multi_currency_support = _purchase.RepositoryMgr.CurrencyMgr.SupportMultiCurrency;

            #region Populate Purchase Information
            query_map.Add("FirstName", DbMgr.CreateStringFieldEntry(is_header && _purchase.Supplier != null ? _purchase.Supplier.FirstName : ""));
            query_map.Add("CoLastName", DbMgr.CreateStringFieldEntry(is_header && _purchase.Supplier != null ? _purchase.Supplier.LastName : ""));
            query_map.Add("CardID", DbMgr.CreateStringFieldEntry(is_header && _purchase.Supplier != null ? _purchase.Supplier.CardIdentification : ""));
            query_map.Add("AddressLine1", DbMgr.CreateStringFieldEntry(is_header ? _purchase.ShipToAddressLine1 : ""));
            query_map.Add("AddressLine2", DbMgr.CreateStringFieldEntry(is_header ? _purchase.ShipToAddressLine2 : ""));
            query_map.Add("AddressLine3", DbMgr.CreateStringFieldEntry(is_header ? _purchase.ShipToAddressLine3 : ""));
            query_map.Add("AddressLine4", DbMgr.CreateStringFieldEntry(is_header ? _purchase.ShipToAddressLine4 : ""));
            query_map.Add("PurchaseNumber", DbMgr.CreateStringFieldEntry(is_header ? _purchase.PurchaseNumber : ""));
            query_map.Add("Memo", DbMgr.CreateStringFieldEntry(is_header ? _purchase.Memo : ""));
            query_map.Add("Inclusive", DbMgr.CreateStringFieldEntry(is_header && _purchase.IsTaxInclusive == "Y" ? "1" : ""));
            query_map.Add("PurchaseDate", _purchase.PurchaseDate != null && is_header ? (DbFieldEntry)DbMgr.CreateDateTimeFieldEntry(_purchase.PurchaseDate) : (DbFieldEntry)DbMgr.CreateStringFieldEntry(""));
            query_map.Add("ShipVia", DbMgr.CreateStringFieldEntry(is_header && _purchase.ShippingMethod != null ? _purchase.ShippingMethod.Method : ""));
            query_map.Add("DeliveryStatus", DbMgr.CreateStringFieldEntry(is_header & _purchase.InvoiceDelivery != null ? _purchase.InvoiceDelivery.InvoiceDeliveryID : ""));
            query_map.Add("Comment", DbMgr.CreateStringFieldEntry(is_header && _purchase.Comment != null ? _purchase.Comment : ""));
            query_map.Add("ShippingDate", is_header && _purchase.PromisedDate != null ? (DbFieldEntry)DbMgr.CreateDateTimeFieldEntry(_purchase.PromisedDate) : (DbFieldEntry)DbMgr.CreateStringFieldEntry(""));
            query_map.Add("FreightExTaxAmount", DbMgr.CreateDoubleFieldEntry(is_header ? _purchase.TaxExclusiveFreight : 0));
            query_map.Add("FreightIncTaxAmount", DbMgr.CreateDoubleFieldEntry(is_header ? _purchase.TaxInclusiveFreight : 0));
            query_map.Add("FreightTaxCode", DbMgr.CreateStringFieldEntry(is_header && _purchase.FreightTaxCode != null ? _purchase.FreightTaxCode.Code : ""));


            string purchase_status_text = "";
            Status purchase_status      = _purchase.PurchaseStatus;
            if (is_header && purchase_status != null)
            {
                if (purchase_status.Type == Status.StatusType.Quote)
                {
                    purchase_status_text = "Q";
                }
                else if (purchase_status.Type == Status.StatusType.Order)
                {
                    purchase_status_text = "O";
                }
                else if (purchase_status.Type == Status.StatusType.Open)
                {
                    purchase_status_text = "B";
                }
            }
            query_map.Add("PurchaseStatus", DbMgr.CreateStringFieldEntry(purchase_status_text));

            if (_purchase.PurchaseStatus.Type == Accounting.Core.Definitions.Status.StatusType.Order ||
                _purchase.PurchaseStatus.Type == Accounting.Core.Definitions.Status.StatusType.Open
                )
            {
                //sqlArray.Add("AmountPaid", DbMgr.CreateDoubleFieldEntry(_obj.AmountPaid));
            }

            if (multi_currency_support)
            {
                query_map.Add("CurrencyCode", DbMgr.CreateStringFieldEntry(is_header && RepositoryMgr.IsMultiUserVersion && _purchase.Currency != null ? _purchase.Currency.CurrencyCode : ""));
                query_map.Add("ExchangeRate", DbMgr.CreateDoubleFieldEntry(is_header && RepositoryMgr.IsMultiUserVersion ? _purchase.TransactionExchangeRate : 0));
            }
            query_map.Add("PaymentIsDue", DbMgr.CreateIntFieldEntry(is_header && _purchase.Terms != null ? _purchase.Terms.PaymentIsDue : 0));
            query_map.Add("DiscountDays", DbMgr.CreateIntFieldEntry(is_header && _purchase.Terms != null ? _purchase.Terms.DiscountDays : 0));
            query_map.Add("BalanceDueDays", DbMgr.CreateIntFieldEntry(is_header && _purchase.Terms != null ? _purchase.Terms.BalanceDueDays : 0));
            query_map.Add("PercentDiscount", DbMgr.CreateDoubleFieldEntry(is_header && _purchase.Terms != null ? _purchase.Terms.EarlyPaymentDiscountPercent : 0));
            //query_map.Add("PercentMonthlyCharge", DbMgr.CreateDoubleFieldEntry(is_header && _purchase.Terms != null ? _purchase.Terms.LatePaymentChargePercent : 0));
            #endregion

            #region Populate Line Information
            query_map.Add("ItemNumber", DbMgr.CreateStringFieldEntry(!is_header && _line.Item != null ? _line.Item.ItemNumber : ""));
            query_map.Add("Quantity", DbMgr.CreateDoubleFieldEntry(!is_header ? _line.Quantity : 0));
            if (purchase_status != null)
            {
                if (purchase_status.Type == Status.StatusType.Quote)
                {
                }
                else if (purchase_status.Type == Status.StatusType.Order)
                {
                    query_map.Add("Ordered", DbMgr.CreateDoubleFieldEntry(!is_header ? _line.Quantity : 0));
                }
                else if (purchase_status.Type == Status.StatusType.Open)
                {
                    query_map.Add("Billed", DbMgr.CreateDoubleFieldEntry(!is_header ? _line.Quantity : 0));
                }
            }
            query_map.Add("Description", DbMgr.CreateStringFieldEntry(!is_header ? _line.Description : ""));
            query_map.Add("ExTaxPrice", DbMgr.CreateDoubleFieldEntry(!is_header ? _line.TaxExclusiveUnitPrice : 0));
            query_map.Add("IncTaxPrice", DbMgr.CreateDoubleFieldEntry(!is_header ? _line.TaxInclusiveUnitPrice : 0));
            query_map.Add("Discount", DbMgr.CreateDoubleFieldEntry(!is_header ? _line.Discount : 0));
            query_map.Add("ExTaxTotal", DbMgr.CreateDoubleFieldEntry(!is_header ? _line.TaxExclusiveTotal : 0));
            query_map.Add("IncTaxTotal", DbMgr.CreateDoubleFieldEntry(!is_header ? _line.TaxInclusiveTotal : 0));
            query_map.Add("Job", DbMgr.CreateStringFieldEntry(!is_header && _line.Job != null ? _line.Job.JobName : ""));
            query_map.Add("TaxCode", DbMgr.CreateStringFieldEntry(!is_header && _line.TaxCode != null ? _line.TaxCode.Code : ""));
            query_map.Add("Received", DbMgr.CreateDoubleFieldEntry(!is_header ? _line.Received : 0));
            #endregion

            return(query_map);
        }
예제 #7
0
 private DbUpdateStatement GetQuery_UpdateQuery(ItemPurchaseLine _obj)
 {
     return(DbMgr.CreateUpdateClause("ItemPurchaseLines", GetFields(_obj), "ItemPurchaseLineID", _obj.ItemPurchaseLineID));
 }
예제 #8
0
        private DbInsertStatement GetQuery_InsertQuery(ItemPurchaseLine _obj)
        {
            Dictionary <string, DbFieldEntry> fields = GetFields(_obj);

            return(DbMgr.CreateInsertClause("ItemPurchaseLines", fields));
        }