public static FinanceInvoiceDetail CreateNew_FinanceInvoiceDetail(FinanceInvoiceDetail parentFinanceInvoiceDetail,
                                                                          object inventoryItemID, object pricePerUnit, object unitMeasurmentID, object quantity, object date,
                                                                          object discountAmount, object discountTypeID, object description, object isSurchargeApplied, object surchargeAmount)
        {
            if (inventoryItemID == null || pricePerUnit == null || unitMeasurmentID == null || quantity == null || date == null)
            {
                return(null);
            }

            FinanceInvoiceDetail financeInvoiceDetail = new FinanceInvoiceDetail();

            if (parentFinanceInvoiceDetail != null)
            {
                if (parentFinanceInvoiceDetail.FinanceInvoiceDetail2 == null)
                {
                    parentFinanceInvoiceDetail.FinanceInvoiceDetail2 = new FinanceInvoiceDetail();
                }
                parentFinanceInvoiceDetail.FinanceInvoiceDetail1.Add(financeInvoiceDetail);
            }

            InventoryItem_cu inventoryItem =
                InventoryItem_cu.ItemsList.Find(item => Convert.ToInt32(item.ID).Equals(Convert.ToInt32(inventoryItemID)));

            if (inventoryItem == null)
            {
                return(null);
            }

            financeInvoiceDetail.InventoryItem_CU_ID    = inventoryItem.ID;
            financeInvoiceDetail.InventoryHousing_CU_ID = inventoryItem.InventoryHousing_CU_ID;
            financeInvoiceDetail.PricePerUnit           = Convert.ToDouble(pricePerUnit);
            financeInvoiceDetail.UnitMeasurment_CU_ID   = Convert.ToInt32(unitMeasurmentID);
            financeInvoiceDetail.Quantity = Convert.ToDouble(quantity);
            financeInvoiceDetail.Date     = Convert.ToDateTime(date);
            if (discountAmount != null)
            {
                financeInvoiceDetail.DiscountAmount = Convert.ToDouble(discountAmount);
            }
            else
            {
                financeInvoiceDetail.DiscountAmount = 0;
            }
            financeInvoiceDetail.IsSurchargeApplied = Convert.ToBoolean(isSurchargeApplied);
            if (surchargeAmount != null)
            {
                financeInvoiceDetail.SurchargeAmount = Convert.ToDouble(surchargeAmount);
            }
            if (description != null)
            {
                financeInvoiceDetail.Description = description.ToString();
            }
            financeInvoiceDetail.IsOnDuty = true;

            return(financeInvoiceDetail);
        }
Esempio n. 2
0
        private void btnAddToList_Click(object sender, EventArgs e)
        {
            if (Line_InventoryItemAvaliableQuantity == null || Line_InventoryItem_CU_ID == null ||
                Line_UnitMeasurment_CU_ID == null || Line_Quantity == null || Line_PricePerUnit == null)
            {
                return;
            }

            InventoryItem_cu inventoryItem =
                InventoryItem_cu.ItemsList.Find(item => Convert.ToInt32(item.ID).Equals(Convert.ToInt32(Line_InventoryItem_CU_ID)));

            if (inventoryItem == null || inventoryItem.InventoryTrackingUnitMeasurment == null)
            {
                return;
            }

            UnitMeasurment_cu transactionUnitMeasurment =
                UnitMeasurment_cu.ItemsList.Find(item => Convert.ToInt32(item.ID).Equals(Convert.ToInt32(Line_UnitMeasurment_CU_ID)));
            double transactionQuantity = Convert.ToDouble(Line_Quantity);

            if (InventoryBusinessLogicEngine.CanBeAdded((DB_InvoiceType)InvoiceTypeID, inventoryItem, InventoryHousing_CU_ID,
                                                        transactionUnitMeasurment, transactionQuantity))
            {
                FinanceInvoiceDetail financeInvoiceDetail = MerkDBBusinessLogicEngine.CreateNew_FinanceInvoiceDetail(null,
                                                                                                                     Line_InventoryItem_CU_ID, Line_PricePerUnit, Line_UnitMeasurment_CU_ID, Line_Quantity, InvoiceCreationDate,
                                                                                                                     Line_DiscountAmount, Line_DiscountTypeID, Line_Description, Line_IsSurchargeApplied, 0);
                if (financeInvoiceDetail == null)
                {
                    return;
                }

                if (FinanceInvoiceDetailsList == null)
                {
                    FinanceInvoiceDetailsList = new List <FinanceInvoiceDetail>();
                }

                if (InventoryBusinessLogicEngine.List_ActiveFinanceInvoiceDetails == null)
                {
                    InventoryBusinessLogicEngine.List_ActiveFinanceInvoiceDetails = new List <FinanceInvoiceDetail>();
                }
                if (FinanceInvoiceDetailsList.Count == 0)
                {
                    FinanceInvoiceDetailsList.Add(financeInvoiceDetail);
                }
                else
                {
                    if (FinanceInvoiceDetailsList.Exists(
                            item =>
                            Convert.ToInt32(item.InventoryItem_CU_ID).Equals(Convert.ToInt32(financeInvoiceDetail.InventoryItem_CU_ID)) &&
                            Convert.ToInt32(item.UnitMeasurment_CU_ID).Equals(Convert.ToInt32(financeInvoiceDetail.UnitMeasurment_CU_ID))))
                    {
                        DialogResult result =
                            XtraMessageBox.Show("قـد تمـت إضـافتــــه مـن قبــل." + "\r\n\r\n" + "هـل تـريــد إضـافتـــه ؟", "تنبيـــه",
                                                MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, DefaultBoolean.Default);
                        switch (result)
                        {
                        case DialogResult.Yes:
                            FinanceInvoiceDetailsList.Add(financeInvoiceDetail);
                            break;
                        }
                    }
                    else
                    {
                        FinanceInvoiceDetailsList.Add(financeInvoiceDetail);
                    }
                }
            }
            else
            {
                switch ((DB_InvoiceType)InvoiceTypeID)
                {
                case DB_InvoiceType.SellingInvoice:
                    XtraMessageBox.Show(
                        "لا يمكنـك الإضـافـــة، حيـث أن العــدد أكبــر مـن الحــد الأدنـى للمخــزون" + "\r\n\r\n" + "الحـــد الأدنـــــى : " +
                        inventoryItem.StockMinLevel + " " + inventoryItem.InventoryTrackingUnitMeasurment.Name_P, "تنبيـــه",
                        MessageBoxButtons.OK, MessageBoxIcon.Stop,
                        MessageBoxDefaultButton.Button1, DefaultBoolean.Default);
                    break;

                case DB_InvoiceType.PurchasingInvoice:
                    XtraMessageBox.Show(
                        "لا يمكنـك الإضـافـــة، حيـث أن الكميـــة المضـافــــــة تخطــت الحـــد الأقصـــى للمخـــــزون" + "\r\n\r\n" +
                        "الحـــد الأقصـــى : " + inventoryItem.StockMaxLevel + " " + inventoryItem.InventoryTrackingUnitMeasurment.Name_P,
                        "تنبيـــه", MessageBoxButtons.OK, MessageBoxIcon.Stop, MessageBoxDefaultButton.Button1);
                    break;
                }
            }

            grdInventoryItems.DataSource = FinanceInvoiceDetailsList;
            InventoryBusinessLogicEngine.List_ActiveFinanceInvoiceDetails = FinanceInvoiceDetailsList;
            spnAccummulativeAmount.EditValue =
                spnAmountPaid.EditValue      = FinancialBusinessLogicLibrary.GetTotalNet(FinanceInvoiceDetailsList);

            grdInventoryItems.RefreshDataSource();
            ClearControls();
        }