Example #1
0
        private PurchaseOrderTable getPurchaseOrderValue()
        {
            PurchaseOrderTable record = new PurchaseOrderTable();

            record.supplierId    = m_supplierPkey;
            record.tradingDate   = this.labelTradingDate.Text;
            record.billNumber    = this.labelBillNumber.Text;
            record.purchaseType  = this.labelPurchaseType.Text;
            record.deliveryDate  = this.labelDeliveryDate.Text;
            record.paymentDate   = this.labelPaymentDate.Text;
            record.exchangesUnit = this.labelSummary.Text;

            record.sumValue = this.dataGridViewDataCount.Rows[0].Cells[(int)DataGridColumnName.Value].Value.ToString();
            record.sumMoney = this.dataGridViewDataCount.Rows[0].Cells[(int)DataGridColumnName.Turnover].Value.ToString();

            record.sumTransportationCost = this.dataGridViewDataCount.Rows[0].Cells[(int)DataGridColumnName.TransportationCost].Value.ToString();
            record.sumOtherCost          = this.dataGridViewDataCount.Rows[0].Cells[(int)DataGridColumnName.OtherCost].Value.ToString();
            record.totalMoney            = this.dataGridViewDataCount.Rows[0].Cells[(int)DataGridColumnName.SumTurnover].Value.ToString();

            record.businessPeopleId = m_staffPkey;

            if (m_billNumber.Length == 0)
            {
                record.makeOrderStaff = DbPublic.getInctance().getCurrentLoginUserID();
            }
            else
            {
                record.makeOrderStaff = m_purchaseOrder.makeOrderStaff;
            }

            return(record);
        }
Example #2
0
        private bool purchaseOrderIsFull(PurchaseOrderTable record)
        {
            if (record.supplierId == -1)
            {
                MessageBoxExtend.messageWarning("供应商信息不完整,单据保存失败");
                return(false);
            }

            if (record.tradingDate.Length == 0)
            {
                MessageBoxExtend.messageWarning("日期不完整,单据保存失败");
                return(false);
            }

            if (record.billNumber.Length == 0)
            {
                MessageBoxExtend.messageWarning("单据号信息不完整,单据保存失败");
                return(false);
            }

            if (record.purchaseType.Length == 0)
            {
                MessageBoxExtend.messageWarning("采购信息不完整,单据保存失败");
                return(false);
            }

            if (record.businessPeopleId == -1)
            {
                MessageBoxExtend.messageWarning("采购员信息不完整,单据保存失败");
                return(false);
            }

            return(true);
        }
        public IHttpActionResult GetUpdatePurchaseStatus1(int Id)
        {
            PurchaseOrderTable po = new PurchaseOrderTable();

            try
            {
                po = db.PurchaseOrderTables.Where(q => q.PurchaseOrderID == Id).FirstOrDefault();

                if (po != null)
                {
                    po.Status          = "accepted";
                    db.Entry(po).State = EntityState.Modified;
                    db.SaveChanges();

                    return(Ok());
                }
                else
                {
                    return(NotFound());
                }
            }
            catch (Exception)
            {
                return(BadRequest());

                throw;
            }
        }
Example #4
0
        private void save_Click(object sender, EventArgs e)
        {
            // 得到详细的采购信息
            ArrayList dataList = getPurchaseOrderDetailsValue();

            if (dataList.Count > 0)
            {
                // 采购订单表头和表尾信息
                PurchaseOrderTable record = getPurchaseOrderValue();
                if (purchaseOrderIsFull(record) && purchaseOrderDetailsIsFull(dataList))
                {
                    PurchaseOrder.getInctance().insert(record, false);
                    PurchaseOrderDetails.getInctance().insert(dataList);
                    BillNumber.getInctance().inserBillNumber(BillTypeNumber, this.labelTradingDate.Text, this.labelBillNumber.Text.ToString());

                    if (m_billNumber.Length == 0)
                    {
                        MessageBoxExtend.messageOK("数据保存成功");
                    }

                    this.Close();
                }
            }
            else
            {
                MessageBoxExtend.messageWarning("此单据不包含任何交易信息,单据保存失败.");
            }
        }
Example #5
0
        public IHttpActionResult PutPurchaseOrderTable(int id, PurchaseOrderTable purchaseOrderTable)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != purchaseOrderTable.PurchaseOrderID)
            {
                return(BadRequest());
            }

            db.Entry(purchaseOrderTable).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PurchaseOrderTableExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Example #6
0
        public IHttpActionResult GetPurchaseOrderTable(int id)
        {
            PurchaseOrderTable purchaseOrderTable = db.PurchaseOrderTables.Find(id);

            if (purchaseOrderTable == null)
            {
                return(NotFound());
            }

            return(Ok(purchaseOrderTable));
        }
Example #7
0
        public IHttpActionResult PostPurchaseOrderTable(PurchaseOrderTable purchaseOrderTable)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.PurchaseOrderTables.Add(purchaseOrderTable);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = purchaseOrderTable.PurchaseOrderID }, purchaseOrderTable));
        }
        public IHttpActionResult DeleteQutationTable(int id)
        {
            PurchaseOrderTable PurchaseTable = db.PurchaseOrderTables.Find(id);

            if (PurchaseTable == null)
            {
                return(NotFound());
            }
            db.PurchaseOrderTables.Remove(PurchaseTable);
            db.SaveChanges();

            return(Ok(PurchaseTable));
        }
Example #9
0
        private void save_Click(object sender, EventArgs e)
        {
            m_isSaveSuccess = false;

            if ((sender.ToString() == "保存" || sender.ToString() == "审核") &&
                PurchaseOrder.getInctance().checkBillIsReview(this.labelBillNumber.Text.ToString()))
            {
                MessageBoxExtend.messageWarning("单据已被审核,所有数据无法进行更改,无法重复保存或审核\r\n请重新登录或手动刷新后查看单据详情");
                return;
            }

            this.ActiveControl = this.toolStrip1;

            // 得到详细的采购信息
            ArrayList dataList = getPurchaseOrderDetailsValue();

            if (dataList.Count > 0)
            {
                // 采购订单表头和表尾信息
                PurchaseOrderTable record = getPurchaseOrderValue();
                if (purchaseOrderIsFull(record) && purchaseOrderDetailsIsFull(dataList))
                {
                    PurchaseOrder.getInctance().insert(record, false);
                    PurchaseOrderDetails.getInctance().insert(dataList);
                    BillNumber.getInctance().inserBillNumber(BillTypeNumber, this.labelTradingDate.Text, this.labelBillNumber.Text.ToString());

                    m_isSaveSuccess = true;
                    if (m_billNumber.Length == 0)
                    {
                        MessageBoxExtend.messageOK("数据保存成功");
                    }

                    this.Close();
                }
            }
            else
            {
                MessageBoxExtend.messageWarning("此单据不包含任何交易信息,单据保存失败.");
            }
        }
Example #10
0
        private void readBillInfoToUI()
        {
            // 单据表头表尾信息
            m_purchaseOrder = PurchaseOrder.getInctance().getPurchaseInfoFromBillNumber(m_billNumber);

            m_supplierPkey = m_purchaseOrder.supplierId;

            this.labelPurchaseName.Visible    = true;
            this.labelTradingDate.Visible     = true;
            this.labelBillNumber.Visible      = true;
            this.labelPurchaseType.Visible    = true;
            this.labelDeliveryDate.Visible    = true;
            this.labelPaymentDate.Visible     = true;
            this.labelSummary.Visible         = true;
            this.labelBusinessPeople.Visible  = true;
            this.labelMakeBillStaff.Visible   = true;
            this.labelReviewBillStaff.Visible = true;
            this.labelReviewDate.Visible      = true;

            this.labelPurchaseName.Text = m_purchaseOrder.supplierName;
            this.labelTradingDate.Text  = m_purchaseOrder.tradingDate;
            this.labelBillNumber.Text   = m_purchaseOrder.billNumber;
            this.labelPurchaseType.Text = m_purchaseOrder.purchaseType;
            this.labelDeliveryDate.Text = m_purchaseOrder.deliveryDate;
            this.labelPaymentDate.Text  = m_purchaseOrder.paymentDate;
            this.labelSummary.Text      = m_purchaseOrder.exchangesUnit;

            m_staffPkey = m_purchaseOrder.businessPeopleId;
            this.labelBusinessPeople.Text = m_purchaseOrder.businessPeopleName;
            this.labelMakeBillStaff.Text  = m_purchaseOrder.makeOrderStaffName;

            // DataGridView 赋值
            SortedDictionary <int, PurchaseOrderDetailsTable> purchaseOrderDetails =
                PurchaseOrderDetails.getInctance().getPurchaseInfoFromBillNumber(m_billNumber);

            foreach (KeyValuePair <int, PurchaseOrderDetailsTable> index in purchaseOrderDetails)
            {
                PurchaseOrderDetailsTable record = new PurchaseOrderDetailsTable();
                record = index.Value;

                int rowIndex = Convert.ToInt32(record.rowNumber.ToString()) - 1;

                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.MatetielNumber].Value     = record.materielID;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.MatetielName].Value       = record.materielName;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.Model].Value              = record.materielModel;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.Unit].Value               = record.materielUnitPurchase;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.Price].Value              = record.price;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.Value].Value              = record.value;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.Turnover].Value           = record.sumMoney;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.TransportationCost].Value = record.transportationCost;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.OtherCost].Value          = record.otherCost;
                dataGridViewDataList.Rows[rowIndex].Cells[(int)DataGridColumnName.SumTurnover].Value        = record.totalMoney;
            }

            // 如果单据已审核,则禁用页面所有控件
            if (m_purchaseOrder.isReview == "1")
            {
                this.labelReviewBillStaff.Text = m_purchaseOrder.orderrReviewName;
                this.labelReviewDate.Text      = m_purchaseOrder.reviewDate;
                this.panelIsReview.Visible     = true;

                this.save.Enabled = false;
                this.toolStripButtonReview.Enabled  = false;
                this.dataGridViewDataList.ReadOnly  = true;
                this.dataGridViewDataCount.ReadOnly = true;

                this.panelPurchaseName.Visible = false;
                this.panelTradingDate.Visible  = false;
                this.panelPurchaseType.Visible = false;
                this.panelDeliveryDate.Visible = false;
                this.panelPaymentDate.Visible  = false;
                this.panelSummary.Visible      = false;

                this.textBoxPurchaseName.Visible        = false;
                this.dateTimePickerTradingDate.Visible  = false;
                this.comboBoxPurchaseType.Visible       = false;
                this.dateTimePickerDeliveryDate.Visible = false;
                this.dateTimePickerPaymentDate.Visible  = false;
                this.textBoxSummary.Visible             = false;

                this.panelBusinessPeople.Visible = false;
            }
            else
            {
                this.labelReviewBillStaff.Visible = false;
                this.labelReviewDate.Visible      = false;
            }
        }
Example #11
0
        private void updateDataGridView()
        {
            SortedDictionary <int, ArrayList> sortedDictionaryList = new SortedDictionary <int, ArrayList>();

            if (m_orderType == OrderType.PurchaseOrder)
            {
                SortedDictionary <int, PurchaseOrderTable> list = new SortedDictionary <int, PurchaseOrderTable>();
                list = PurchaseOrder.getInctance().getAllPurchaseOrderInfo();

                m_dataGridRecordCount = list.Count;

                for (int index = 0; index < list.Count; index++)
                {
                    PurchaseOrderTable record = new PurchaseOrderTable();
                    record = (PurchaseOrderTable)list[index];

                    if (m_filter.startDate == null || (record.tradingDate.CompareTo(m_filter.startDate) >= 0 && record.tradingDate.CompareTo(m_filter.endDate) <= 0))
                    {
                        ArrayList temp = new ArrayList();

                        temp.Add(record.pkey);
                        temp.Add(record.supplierName);
                        temp.Add(record.tradingDate);
                        temp.Add(record.billNumber);
                        temp.Add(record.purchaseType);
                        temp.Add(record.deliveryDate);
                        temp.Add(record.paymentDate);
                        temp.Add(record.sumMoney);
                        temp.Add(record.sumTransportationCost);
                        temp.Add(record.sumOtherCost);
                        temp.Add(record.totalMoney);
                        temp.Add(record.businessPeopleName);
                        temp.Add(record.makeOrderStaffName);

                        if (record.isReview == "0")
                        {
                            temp.Add("否");
                        }
                        else
                        {
                            temp.Add("是");
                        }

                        temp.Add(record.orderrReviewName);
                        temp.Add(record.reviewDate);

                        sortedDictionaryList.Add(sortedDictionaryList.Count, temp);
                    }
                }

                m_dateGridViewExtend.initDataGridViewData(sortedDictionaryList, 3);
            }
            else if (m_orderType == OrderType.PurchaseIn)
            {
                SortedDictionary <int, PurchaseInOrderTable> list = new SortedDictionary <int, PurchaseInOrderTable>();
                list = PurchaseInOrder.getInctance().getAllPurchaseInOrderInfo();

                m_dataGridRecordCount = list.Count;

                for (int index = 0; index < list.Count; index++)
                {
                    PurchaseInOrderTable record = new PurchaseInOrderTable();
                    record = (PurchaseInOrderTable)list[index];

                    if (m_filter.startDate == null || (record.tradingDate.CompareTo(m_filter.startDate) >= 0 && record.tradingDate.CompareTo(m_filter.endDate) <= 0))
                    {
                        ArrayList temp = new ArrayList();

                        temp.Add(record.pkey);
                        temp.Add(record.supplierName);
                        temp.Add(record.tradingDate);
                        temp.Add(record.billNumber);
                        temp.Add(record.purchaseType);
                        temp.Add(record.contractNum);
                        temp.Add(record.paymentDate);
                        temp.Add(record.sourceBillNumber);
                        temp.Add(record.sumMoney);
                        temp.Add(record.sumTransportationCost);
                        temp.Add(record.sumOtherCost);
                        temp.Add(record.totalMoney);
                        temp.Add(record.staffSaveName);
                        temp.Add(record.staffCheckName);
                        temp.Add(record.businessPeopleName);
                        temp.Add(record.makeOrderStaffName);
                        temp.Add(record.orderrReviewName);
                        temp.Add(record.reviewDate);
                        temp.Add(record.orderInLedgerName);
                        temp.Add(record.inLedgerDate);

                        sortedDictionaryList.Add(sortedDictionaryList.Count, temp);
                    }
                }

                m_dateGridViewExtend.initDataGridViewData(sortedDictionaryList, 3);
            }
            else if (m_orderType == OrderType.PurchaseInvoice)
            {
            }
            else if (m_orderType == OrderType.PurchaseOrderExcute)
            {
                SortedDictionary <int, PurchaseOrderTable> list = new SortedDictionary <int, PurchaseOrderTable>();
                list = PurchaseOrder.getInctance().getAllPurchaseOrderInfo();

                m_dataGridRecordCount = list.Count;

                for (int index = 0; index < list.Count; index++)
                {
                    PurchaseOrderTable record = new PurchaseOrderTable();
                    record = (PurchaseOrderTable)list[index];

                    ArrayList temp = new ArrayList();

                    temp.Add(record.pkey);
                    temp.Add(record.supplierName);
                    temp.Add(record.tradingDate);
                    temp.Add(record.billNumber);
                    temp.Add(record.deliveryDate);
                    temp.Add(record.sumValue);

                    if (record.isInStorage == "0")
                    {
                        temp.Add("否");
                    }
                    else
                    {
                        temp.Add("是");
                    }

                    temp.Add(record.actualValue);
                    temp.Add(record.businessPeopleName);

                    sortedDictionaryList.Add(sortedDictionaryList.Count, temp);
                }

                m_dateGridViewExtend.initDataGridViewData(sortedDictionaryList, 3);
            }
            else if (m_orderType == OrderType.PurchaseInOrderExcute)
            {
                SortedDictionary <int, PurchaseInOrderTable> list = new SortedDictionary <int, PurchaseInOrderTable>();
                list = PurchaseInOrder.getInctance().getAllPurchaseInOrderInfo();

                m_dataGridRecordCount = list.Count;

                for (int index = 0; index < list.Count; index++)
                {
                    PurchaseInOrderTable record = new PurchaseInOrderTable();
                    record = (PurchaseInOrderTable)list[index];

                    ArrayList temp = new ArrayList();

                    temp.Add(record.pkey);
                    temp.Add(record.supplierName);
                    temp.Add(record.tradingDate);
                    temp.Add(record.billNumber);
                    temp.Add(record.purchaseType);
                    temp.Add(record.paymentDate);
                    temp.Add(record.totalMoney);
                    temp.Add(record.paymentOk);
                    temp.Add(record.paymentNoOk);
                    temp.Add(record.businessPeopleName);

                    sortedDictionaryList.Add(sortedDictionaryList.Count, temp);
                }

                m_dateGridViewExtend.initDataGridViewData(sortedDictionaryList, 3);
            }
            else if (m_orderType == OrderType.StorageProductIn)
            {
                // 仓存管理-产品入库
                SortedDictionary <int, MaterielInOrderTable> list = new SortedDictionary <int, MaterielInOrderTable>();
                list = MaterielInOrder.getInctance().getAllMaterielInOrderInfo();

                m_dataGridRecordCount = list.Count;

                for (int index = 0; index < list.Count; index++)
                {
                    bool isDisplayRecord        = false;
                    MaterielInOrderTable record = new MaterielInOrderTable();
                    record = (MaterielInOrderTable)list[index];

                    if (m_filter.startDate == null || (record.tradingDate.CompareTo(m_filter.startDate) >= 0 && record.tradingDate.CompareTo(m_filter.endDate) <= 0))
                    {
                        // 等于0代表只显示已审核单据
                        if (m_filter.allReview == "0")
                        {
                            if (record.isReview == "1")
                            {
                                if (m_filter.billColor == "0")  // 需要显示蓝字单据
                                {
                                    if (record.isRedBill == 0)
                                    {
                                        isDisplayRecord = true;
                                    }
                                }
                                else if (m_filter.billColor == "1")  // 需要显示红字单据
                                {
                                    if (record.isRedBill == 1)
                                    {
                                        isDisplayRecord = true;
                                    }
                                }
                                else                                // 需要显示全部颜色单据
                                {
                                    isDisplayRecord = true;
                                }
                            }
                        }
                        else
                        {
                            if (m_filter.billColor == "0")  // 需要显示蓝字单据
                            {
                                if (record.isRedBill == 0)
                                {
                                    isDisplayRecord = true;
                                }
                            }
                            else if (m_filter.billColor == "1")  // 需要显示红字单据
                            {
                                if (record.isRedBill == 1)
                                {
                                    isDisplayRecord = true;
                                }
                            }
                            else                                // 需要显示全部颜色单据
                            {
                                isDisplayRecord = true;
                            }
                        }
                    }

                    if (isDisplayRecord)
                    {
                        ArrayList temp = new ArrayList();

                        temp.Add(record.pkey);
                        temp.Add(record.departmentName);
                        temp.Add(record.tradingDate);
                        temp.Add(record.billNumber);
                        temp.Add(record.sumValue);
                        temp.Add(record.sumMoney);
                        temp.Add(record.orderReviewStaffName);
                        temp.Add(record.makeOrderStaffName);
                        temp.Add(record.orderrReviewName);
                        temp.Add(record.reviewDate);

                        sortedDictionaryList.Add(sortedDictionaryList.Count, temp);
                    }
                }

                m_dateGridViewExtend.initDataGridViewData(sortedDictionaryList, 3);
            }
            else if (m_orderType == OrderType.StorageInCheck)
            {
                // 仓存管理-盘盈入库
                SortedDictionary <int, MaterielInEarningsOrderTable> list = new SortedDictionary <int, MaterielInEarningsOrderTable>();
                list = MaterielInEarningsOrder.getInctance().getAllMaterielInEarningsOrderInfo();

                m_dataGridRecordCount = list.Count;

                for (int index = 0; index < list.Count; index++)
                {
                    bool isDisplayRecord = false;
                    MaterielInEarningsOrderTable record = new MaterielInEarningsOrderTable();
                    record = (MaterielInEarningsOrderTable)list[index];

                    if (m_filter.startDate == null || (record.tradingDate.CompareTo(m_filter.startDate) >= 0 && record.tradingDate.CompareTo(m_filter.endDate) <= 0))
                    {
                        // 等于0代表只显示已审核单据
                        if (m_filter.allReview == "0")
                        {
                            if (record.isReview == "1")
                            {
                                if (m_filter.billColor == "0")  // 需要显示蓝字单据
                                {
                                    if (record.isRedBill == 0)
                                    {
                                        isDisplayRecord = true;
                                    }
                                }
                                else if (m_filter.billColor == "1")  // 需要显示红字单据
                                {
                                    if (record.isRedBill == 1)
                                    {
                                        isDisplayRecord = true;
                                    }
                                }
                                else                                // 需要显示全部颜色单据
                                {
                                    isDisplayRecord = true;
                                }
                            }
                        }
                        else
                        {
                            if (m_filter.billColor == "0")  // 需要显示蓝字单据
                            {
                                if (record.isRedBill == 0)
                                {
                                    isDisplayRecord = true;
                                }
                            }
                            else if (m_filter.billColor == "1")  // 需要显示红字单据
                            {
                                if (record.isRedBill == 1)
                                {
                                    isDisplayRecord = true;
                                }
                            }
                            else                                // 需要显示全部颜色单据
                            {
                                isDisplayRecord = true;
                            }
                        }
                    }

                    if (isDisplayRecord)
                    {
                        ArrayList temp = new ArrayList();

                        temp.Add(record.pkey);
                        temp.Add(record.tradingDate);
                        temp.Add("");
                        temp.Add(record.billNumber);
                        temp.Add(record.sumValue);
                        temp.Add(record.sumMoney);
                        temp.Add(record.orderReviewStaffName);
                        temp.Add(record.makeOrderStaffName);
                        temp.Add(record.orderrReviewName);
                        temp.Add(record.reviewDate);

                        sortedDictionaryList.Add(sortedDictionaryList.Count, temp);
                    }
                }

                m_dateGridViewExtend.initDataGridViewData(sortedDictionaryList, 3);
            }
            else if (m_orderType == OrderType.StorageInOther)
            {
                // 仓存管理-其他入库
                SortedDictionary <int, MaterielInOtherOrderTable> list = new SortedDictionary <int, MaterielInOtherOrderTable>();
                list = MaterielInOtherOrder.getInctance().getAllMaterielInOtherOrderInfo();

                m_dataGridRecordCount = list.Count;

                for (int index = 0; index < list.Count; index++)
                {
                    bool isDisplayRecord             = false;
                    MaterielInOtherOrderTable record = new MaterielInOtherOrderTable();
                    record = (MaterielInOtherOrderTable)list[index];

                    if (m_filter.startDate == null || (record.tradingDate.CompareTo(m_filter.startDate) >= 0 && record.tradingDate.CompareTo(m_filter.endDate) <= 0))
                    {
                        // 等于0代表只显示已审核单据
                        if (m_filter.allReview == "0")
                        {
                            if (record.isReview == "1")
                            {
                                if (m_filter.billColor == "0")  // 需要显示蓝字单据
                                {
                                    if (record.isRedBill == 0)
                                    {
                                        isDisplayRecord = true;
                                    }
                                }
                                else if (m_filter.billColor == "1")  // 需要显示红字单据
                                {
                                    if (record.isRedBill == 1)
                                    {
                                        isDisplayRecord = true;
                                    }
                                }
                                else                                // 需要显示全部颜色单据
                                {
                                    isDisplayRecord = true;
                                }
                            }
                        }
                        else
                        {
                            if (m_filter.billColor == "0")  // 需要显示蓝字单据
                            {
                                if (record.isRedBill == 0)
                                {
                                    isDisplayRecord = true;
                                }
                            }
                            else if (m_filter.billColor == "1")  // 需要显示红字单据
                            {
                                if (record.isRedBill == 1)
                                {
                                    isDisplayRecord = true;
                                }
                            }
                            else                                // 需要显示全部颜色单据
                            {
                                isDisplayRecord = true;
                            }
                        }
                    }

                    if (isDisplayRecord)
                    {
                        ArrayList temp = new ArrayList();

                        temp.Add(record.pkey);
                        temp.Add(record.tradingDate);
                        temp.Add("");
                        temp.Add(record.billNumber);
                        temp.Add(record.sumValue);
                        temp.Add(record.sumMoney);
                        temp.Add(record.orderReviewStaffName);
                        temp.Add(record.makeOrderStaffName);
                        temp.Add(record.orderrReviewName);
                        temp.Add(record.reviewDate);

                        sortedDictionaryList.Add(sortedDictionaryList.Count, temp);
                    }
                }

                m_dateGridViewExtend.initDataGridViewData(sortedDictionaryList, 3);
            }
        }
Example #12
0
        public JsonResult Proceeds(int Id, string Status)
        {
            MvcPurchaseModel            PurchaseModel        = new MvcPurchaseModel();
            List <MvcPurchaseViewModel> _PurcchaseDetailList = new List <MvcPurchaseViewModel>();

            InvoiceTable    InvoiceTable    = new InvoiceTable();
            MVCInvoiceModel mvcInvoiceModel = new MVCInvoiceModel();

            PurchaseOrderTable purchasemodel = new PurchaseOrderTable();

            try
            {
                PurchaseModel        = GetPurchasae(Id);
                _PurcchaseDetailList = GetPurchaseDetail(Id);
                if (PurchaseModel != null)
                {
                    BillTable billtable = new BillTable();

                    billtable.CompanyId      = PurchaseModel.CompanyId;
                    billtable.UserId         = Convert.ToInt32(Session["LoginUserID"]);
                    billtable.Bill_ID        = PurchaseModel.PurchaseID.ToString();
                    billtable.PurchaseId     = PurchaseModel.PurchaseOrderID;
                    billtable.VenderId       = PurchaseModel.VenderId;
                    billtable.RefNumber      = PurchaseModel.PurchaseRefNumber;
                    billtable.BillDate       = Convert.ToDateTime(PurchaseModel.PurchaseDate);
                    billtable.BillDueDate    = Convert.ToDateTime(PurchaseModel.PurchaseDueDate);
                    billtable.SubTotal       = PurchaseModel.PurchaseSubTotal;
                    billtable.DiscountAmount = PurchaseModel.PurchaseTotoalAmount;
                    billtable.TotalAmount    = PurchaseModel.PurchaseTotoalAmount;
                    billtable.CustomerNote   = PurchaseModel.PurchaseVenderNote;
                    billtable.TotalVat6      = PurchaseModel.Vat6;
                    billtable.TotalVat21     = PurchaseModel.Vat21;
                    billtable.Status         = "accepted";
                    billtable.Type           = StatusEnum.Goods.ToString();
                    // bill Api
                    HttpResponseMessage response      = GlobalVeriables.WebApiClient.PostAsJsonAsync("AddBill", billtable).Result;
                    BillTable           billviewmodel = response.Content.ReadAsAsync <BillTable>().Result;


                    if (response.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        if (_PurcchaseDetailList != null)
                        {
                            foreach (var item in _PurcchaseDetailList)
                            {
                                BillDetailTable billdetailtable = new BillDetailTable();

                                billdetailtable.BillID      = billviewmodel.BilID;
                                billdetailtable.ItemId      = item.PurchaseItemId;
                                billdetailtable.Description = item.PurchaseDescription;
                                billdetailtable.Quantity    = item.PurchaseQuantity;
                                billdetailtable.Rate        = item.PurchaseItemRate;
                                billdetailtable.Total       = item.PurchaseTotal;
                                billdetailtable.Type        = item.Type;
                                billdetailtable.RowSubTotal = Convert.ToDouble(item.RowSubTotal);
                                billdetailtable.Vat         = item.PurchaseVatPercentage;
                                billdetailtable.ServiceDate = item.ServiceDate;
                                // APIBill
                                HttpResponseMessage responsses = GlobalVeriables.WebApiClient.PostAsJsonAsync("AddBillDetail", billdetailtable).Result;

                                if (responsses.StatusCode != System.Net.HttpStatusCode.OK)
                                {
                                    return(new JsonResult {
                                        Data = new { Status = "Fail", Message = "Fail to Proceed" }
                                    });
                                }
                            }

                            if (UpdateQuatationStation(Id))
                            {
                                return(new JsonResult {
                                    Data = new { Status = "Success", Message = "Proceed successfullly" }
                                });
                            }
                        }
                    }
                }
            }

            catch (Exception)
            {
                throw;
            }

            return(new JsonResult {
                Data = new { Status = "Success", Message = "Proceed successfullly" }
            });
        }
        private void getInfoListFromBillNumber(FormProjectMaterielTable record)
        {
            SortedDictionary <int, ProjectManagerDetailsTable> listDetails = new SortedDictionary <int, ProjectManagerDetailsTable>();

            listDetails = ProjectManagerDetails.getInctance().getPurchaseInfoFromBillNumber(record.billNumber);

            SortedDictionary <int, ProjectManagerDetailsTable> changeMaterielList = FormProjectInfoChange.getInctance().getMaterielDetailsFromSrcBillNumber(record.billNumber);

            for (int index2 = 0; index2 < listDetails.Count; index2++)
            {
                ProjectManagerDetailsTable tmp = new ProjectManagerDetailsTable();
                tmp = (ProjectManagerDetailsTable)listDetails[index2];

                // 物料数量可能会存在变更,若发生变更,需要使用变更后数量代替原有数量,在一个材料表中,序号是唯一值
                double actualValue = 0.0;
                int    sign        = 0;
                if (tmp.no.Length > 0)
                {
                    sign = Convert.ToInt32(tmp.no);
                }

                if (changeMaterielList.Count > 0 && changeMaterielList.ContainsKey(sign))
                {
                    if (tmp.materielID != changeMaterielList[sign].materielID)
                    {
                        // 相当于变更时,使用使用了另外一种物料替换了现有物料,
                        tmp.materielID        = changeMaterielList[sign].materielID;
                        tmp.materielName      = changeMaterielList[sign].materielName;
                        tmp.num               = changeMaterielList[sign].num;
                        tmp.materielModel     = changeMaterielList[sign].materielModel;
                        tmp.materielParameter = changeMaterielList[sign].materielParameter;
                        tmp.cl           = changeMaterielList[sign].cl;
                        tmp.materielSize = changeMaterielList[sign].materielSize;
                    }

                    actualValue = changeMaterielList[sign].value;
                    changeMaterielList.Remove(sign);
                }
                else
                {
                    actualValue = tmp.value;
                }

                ArrayList temp = new ArrayList();

                temp.Add(record.billNumber);
                temp.Add(record.projectNum);
                temp.Add(record.makeNum);
                temp.Add(record.deviceMode);
                temp.Add(record.subName);

                temp.Add(tmp.materielID);
                temp.Add(tmp.materielName);
                temp.Add(tmp.num);
                temp.Add(tmp.materielModel);
                temp.Add(tmp.materielParameter);
                temp.Add(tmp.cl);
                temp.Add(tmp.materielSize);
                temp.Add(actualValue);

                // 得到实际库存
                InitMaterielTable MaterielCountdata = InitMateriel.getInctance().getMaterielInfoFromMaterielID(tmp.materielID);
                temp.Add(MaterielCountdata.value);

                // 库存预占情况,包含总预占量和本项目预占量
                temp.Add(MaterielProOccupiedOrderDetails.getInctance().getMaterielProCountInfoFromProject(tmp.materielID));
                temp.Add(MaterielProOccupiedOrderDetails.getInctance().getMaterielProCountInfoFromProject(tmp.materielID, record.billNumber));


                // 转采购申请单数量
                double appylyCount = PurchaseApplyOrderDetails.getInctance().getPurchaseValueFromProjectNumber(record.billNumber,
                                                                                                               PublicFuction.getXXMateaielOrderSign(tmp.rowNumber, tmp.sequence, tmp.no));
                temp.Add(appylyCount);

                // 采购订单数量
                SortedDictionary <int, PurchaseOrderTable> listOrderList = new SortedDictionary <int, PurchaseOrderTable>();
                listOrderList = PurchaseOrder.getInctance().getAllPurchaseOrderInfoFromProjectNum(record.billNumber);

                double orderCount = 0;
                for (int indexOrderList = 0; indexOrderList < listOrderList.Count; indexOrderList++)
                {
                    PurchaseOrderTable recordOrder = new PurchaseOrderTable();
                    recordOrder = (PurchaseOrderTable)listOrderList[indexOrderList];

                    orderCount += PurchaseOrderDetails.getInctance().getPurchaseValueFromBillNumber(recordOrder.billNumber, tmp.materielID);
                }
                temp.Add(orderCount);

                // 采购入库数量
                SortedDictionary <int, PurchaseInOrderTable> purchaseInOrderList = new SortedDictionary <int, PurchaseInOrderTable>();
                purchaseInOrderList = PurchaseInOrder.getInctance().getAllPurchaseOrderInfoFromProjectNum(record.billNumber);

                double purchaseInOrderValueCount = 0;
                for (int indexOrderList = 0; indexOrderList < purchaseInOrderList.Count; indexOrderList++)
                {
                    PurchaseInOrderTable recordOrder = new PurchaseInOrderTable();
                    recordOrder = (PurchaseInOrderTable)purchaseInOrderList[indexOrderList];

                    purchaseInOrderValueCount += PurchaseInOrderDetails.getInctance().getPurchaseValueFromBillNumber(recordOrder.billNumber, tmp.materielID);
                }
                temp.Add(purchaseInOrderValueCount);

                // 生产领料数量
                double materielOutOrderValueCount = MaterielOutOrderDetails.getInctance().getMaterielCountInfoFromProject(record.billNumber,
                                                                                                                          PublicFuction.getXXMateaielOrderSign(tmp.rowNumber, tmp.sequence, tmp.no));
                temp.Add(materielOutOrderValueCount);

                m_projectInfoList.Add(m_projectInfoList.Count, temp);
            }

            // 如果changeMaterielList.count大于0 则代表有
            foreach (KeyValuePair <int, ProjectManagerDetailsTable> index3 in changeMaterielList)
            {
                ProjectManagerDetailsTable tmp = new ProjectManagerDetailsTable();
                tmp = index3.Value;

                ArrayList temp = new ArrayList();

                temp.Add(record.billNumber);
                temp.Add(record.projectNum);
                temp.Add(record.makeNum);
                temp.Add(record.deviceMode);
                temp.Add(record.subName);

                temp.Add(tmp.materielID);
                temp.Add(tmp.materielName);
                temp.Add(tmp.num);
                temp.Add(tmp.materielModel);
                temp.Add(tmp.materielParameter);
                temp.Add(tmp.cl);
                temp.Add(tmp.materielSize);
                temp.Add(tmp.value);

                // 得到实际库存
                InitMaterielTable MaterielCountdata = InitMateriel.getInctance().getMaterielInfoFromMaterielID(tmp.materielID);
                temp.Add(MaterielCountdata.value);

                // 库存预占情况,包含总预占量和本项目预占量
                temp.Add(MaterielProOccupiedOrderDetails.getInctance().getMaterielProCountInfoFromProject(tmp.materielID));
                temp.Add(MaterielProOccupiedOrderDetails.getInctance().getMaterielProCountInfoFromProject(tmp.materielID, record.billNumber));


                // 转采购申请单数量
                double appylyCount = PurchaseApplyOrderDetails.getInctance().getPurchaseValueFromProjectNumber(record.billNumber,
                                                                                                               PublicFuction.getXXMateaielOrderSign(tmp.rowNumber, tmp.sequence, tmp.no));
                temp.Add(appylyCount);

                // 采购订单数量
                SortedDictionary <int, PurchaseOrderTable> listOrderList = new SortedDictionary <int, PurchaseOrderTable>();
                listOrderList = PurchaseOrder.getInctance().getAllPurchaseOrderInfoFromProjectNum(record.billNumber);

                double orderCount = 0;
                for (int indexOrderList = 0; indexOrderList < listOrderList.Count; indexOrderList++)
                {
                    PurchaseOrderTable recordOrder = new PurchaseOrderTable();
                    recordOrder = (PurchaseOrderTable)listOrderList[indexOrderList];

                    orderCount += PurchaseOrderDetails.getInctance().getPurchaseValueFromBillNumber(recordOrder.billNumber, tmp.materielID);
                }
                temp.Add(orderCount);

                // 采购入库数量
                SortedDictionary <int, PurchaseInOrderTable> purchaseInOrderList = new SortedDictionary <int, PurchaseInOrderTable>();
                purchaseInOrderList = PurchaseInOrder.getInctance().getAllPurchaseOrderInfoFromProjectNum(record.billNumber);

                double purchaseInOrderValueCount = 0;
                for (int indexOrderList = 0; indexOrderList < purchaseInOrderList.Count; indexOrderList++)
                {
                    PurchaseInOrderTable recordOrder = new PurchaseInOrderTable();
                    recordOrder = (PurchaseInOrderTable)purchaseInOrderList[indexOrderList];

                    purchaseInOrderValueCount += PurchaseInOrderDetails.getInctance().getPurchaseValueFromBillNumber(recordOrder.billNumber, tmp.materielID);
                }
                temp.Add(purchaseInOrderValueCount);

                // 生产领料数量
                double materielOutOrderValueCount = MaterielOutOrderDetails.getInctance().getMaterielCountInfoFromProject(record.billNumber,
                                                                                                                          PublicFuction.getXXMateaielOrderSign(tmp.rowNumber, tmp.sequence, tmp.no));
                temp.Add(materielOutOrderValueCount);

                m_projectInfoList.Add(m_projectInfoList.Count, temp);
            }
        }
        private void updateDataGridView()
        {
            SortedDictionary <int, ArrayList> sortedDictionaryList = new SortedDictionary <int, ArrayList>();

            if (m_orderType == OrderType.PurchaseApplyOrder)
            {
                SortedDictionary <int, PurchaseApplyOrderTable> list = new SortedDictionary <int, PurchaseApplyOrderTable>();

                SortedDictionary <int, PurchaseApplyOrderTable> listOrderList = new SortedDictionary <int, PurchaseApplyOrderTable>();
                listOrderList = PurchaseApplyOrder.getInctance().getAllPurchaseOrderInfoFromProjectNum(m_xxMaterielTableNum);

                for (int indexOrderList = 0; indexOrderList < listOrderList.Count; indexOrderList++)
                {
                    PurchaseApplyOrderTable recordOrder = new PurchaseApplyOrderTable();
                    recordOrder = (PurchaseApplyOrderTable)listOrderList[indexOrderList];

                    if (PurchaseApplyOrderDetails.getInctance().getPurchaseValueFromMaterielID(recordOrder.billNumber, m_materielID) > 0)
                    {
                        list.Add(list.Count, recordOrder);
                    }
                }

                m_dataGridRecordCount = list.Count;

                for (int index = 0; index < list.Count; index++)
                {
                    PurchaseApplyOrderTable record = new PurchaseApplyOrderTable();
                    record = (PurchaseApplyOrderTable)list[index];

                    ArrayList temp = new ArrayList();

                    temp.Add(record.pkey);
                    temp.Add(record.applyName);
                    temp.Add(record.tradingDate);
                    temp.Add(record.billNumber);
                    temp.Add(record.srcOrderNum);
                    temp.Add(record.paymentDate);
                    temp.Add(record.totalMoney);
                    temp.Add(record.makeOrderStaffName);

                    if (record.isReview == "0")
                    {
                        temp.Add("否");
                    }
                    else
                    {
                        temp.Add("是");
                    }

                    temp.Add(record.orderrReviewName);
                    temp.Add(record.reviewDate);

                    sortedDictionaryList.Add(sortedDictionaryList.Count, temp);
                }

                m_dateGridViewExtend.initDataGridViewData(sortedDictionaryList, 3);
            }
            else if (m_orderType == OrderType.PurchaseOrder)
            {
                SortedDictionary <int, PurchaseOrderTable> list = new SortedDictionary <int, PurchaseOrderTable>();

                SortedDictionary <int, PurchaseOrderTable> listOrderList = new SortedDictionary <int, PurchaseOrderTable>();
                listOrderList = PurchaseOrder.getInctance().getAllPurchaseOrderInfoFromProjectNum(m_xxMaterielTableNum);

                for (int indexOrderList = 0; indexOrderList < listOrderList.Count; indexOrderList++)
                {
                    PurchaseOrderTable recordOrder = new PurchaseOrderTable();
                    recordOrder = (PurchaseOrderTable)listOrderList[indexOrderList];

                    if (PurchaseOrderDetails.getInctance().getPurchaseValueFromBillNumber(recordOrder.billNumber, m_materielID) > 0)
                    {
                        list.Add(list.Count, recordOrder);
                    }
                }

                m_dataGridRecordCount = list.Count;

                for (int index = 0; index < list.Count; index++)
                {
                    PurchaseOrderTable record = new PurchaseOrderTable();
                    record = (PurchaseOrderTable)list[index];

                    ArrayList temp = new ArrayList();

                    temp.Add(record.pkey);
                    temp.Add(record.supplierName);
                    temp.Add(record.tradingDate);
                    temp.Add(record.billNumber);
                    temp.Add(record.xxMaterielTableNum);
                    temp.Add(record.deliveryDate);
                    temp.Add(record.paymentDate);
                    temp.Add(record.sumMoney);
                    temp.Add(record.sumTransportationCost);
                    temp.Add(record.sumOtherCost);
                    temp.Add(record.totalMoney);
                    temp.Add(record.businessPeopleName);
                    temp.Add(record.makeOrderStaffName);

                    if (record.isReview == "0")
                    {
                        temp.Add("否");
                    }
                    else
                    {
                        temp.Add("是");
                    }

                    temp.Add(record.orderrReviewName);
                    temp.Add(record.reviewDate);

                    sortedDictionaryList.Add(sortedDictionaryList.Count, temp);
                }

                m_dateGridViewExtend.initDataGridViewData(sortedDictionaryList, 3);
            }
            else if (m_orderType == OrderType.PurchaseIn)
            {
                SortedDictionary <int, PurchaseInOrderTable> list = new SortedDictionary <int, PurchaseInOrderTable>();

                SortedDictionary <int, PurchaseInOrderTable> listOrderList = new SortedDictionary <int, PurchaseInOrderTable>();
                listOrderList = PurchaseInOrder.getInctance().getAllPurchaseOrderInfoFromProjectNum(m_xxMaterielTableNum);

                for (int indexOrderList = 0; indexOrderList < listOrderList.Count; indexOrderList++)
                {
                    PurchaseInOrderTable recordOrder = new PurchaseInOrderTable();
                    recordOrder = (PurchaseInOrderTable)listOrderList[indexOrderList];

                    if (PurchaseInOrderDetails.getInctance().getPurchaseValueFromBillNumber(recordOrder.billNumber, m_materielID) > 0)
                    {
                        list.Add(list.Count, recordOrder);
                    }
                }

                m_dataGridRecordCount = list.Count;

                for (int index = 0; index < list.Count; index++)
                {
                    PurchaseInOrderTable record = new PurchaseInOrderTable();
                    record = (PurchaseInOrderTable)list[index];

                    ArrayList temp = new ArrayList();

                    temp.Add(record.pkey);
                    temp.Add(record.supplierName);
                    temp.Add(record.tradingDate);
                    temp.Add(record.billNumber);
                    temp.Add(record.purchaseType);
                    temp.Add(record.srcOrderNum);
                    temp.Add(record.paymentDate);
                    temp.Add(record.sourceBillNumber);
                    temp.Add(record.sumMoney);
                    temp.Add(record.sumTransportationCost);
                    temp.Add(record.sumOtherCost);
                    temp.Add(record.totalMoney);
                    temp.Add(record.staffSaveName);
                    temp.Add(record.staffCheckName);
                    temp.Add(record.businessPeopleName);
                    temp.Add(record.makeOrderStaffName);
                    temp.Add(record.orderrReviewName);
                    temp.Add(record.reviewDate);
                    temp.Add(record.orderInLedgerName);
                    temp.Add(record.inLedgerDate);

                    sortedDictionaryList.Add(sortedDictionaryList.Count, temp);
                }

                m_dateGridViewExtend.initDataGridViewData(sortedDictionaryList, 3);
            }
            else if (m_orderType == OrderType.StorageMaterielOut)
            {
                SortedDictionary <int, MaterielOutOrderTable> list = new SortedDictionary <int, MaterielOutOrderTable>();

                SortedDictionary <int, MaterielOutOrderTable> listOrderList = new SortedDictionary <int, MaterielOutOrderTable>();
                listOrderList = MaterielOutOrder.getInctance().getAllPurchaseOrderInfoFromProjectNum(m_xxMaterielTableNum);

                for (int indexOrderList = 0; indexOrderList < listOrderList.Count; indexOrderList++)
                {
                    MaterielOutOrderTable recordOrder = new MaterielOutOrderTable();
                    recordOrder = (MaterielOutOrderTable)listOrderList[indexOrderList];

                    if (MaterielOutOrderDetails.getInctance().getPurchaseValueFromMaterielID(recordOrder.billNumber, m_materielID) > 0)
                    {
                        list.Add(list.Count, recordOrder);
                    }
                }

                m_dataGridRecordCount = list.Count;

                for (int index = 0; index < list.Count; index++)
                {
                    MaterielOutOrderTable record = new MaterielOutOrderTable();
                    record = (MaterielOutOrderTable)list[index];

                    ArrayList temp = new ArrayList();

                    temp.Add(record.pkey);
                    temp.Add(record.departmentName);
                    temp.Add(record.tradingDate);
                    temp.Add(record.billNumber);
                    temp.Add(record.srcOrderNum);
                    temp.Add(record.makeNo);
                    temp.Add(record.sumValue);
                    temp.Add(record.sumMoney);
                    temp.Add(record.materielOutStaffName);
                    temp.Add(record.makeOrderStaffName);
                    temp.Add(record.orderrReviewName);
                    temp.Add(record.reviewDate);

                    sortedDictionaryList.Add(sortedDictionaryList.Count, temp);
                }

                m_dateGridViewExtend.initDataGridViewData(sortedDictionaryList, 3);
            }
            else if (m_orderType == OrderType.ChangeApply)
            {
                //m_dateGridViewExtend.addDataGridViewColumn("ID", 30);
                //m_dateGridViewExtend.addDataGridViewColumn("源单据号", 150);
                //m_dateGridViewExtend.addDataGridViewColumn("设计人", 80);
                //m_dateGridViewExtend.addDataGridViewColumn("单据号", 150);
                //m_dateGridViewExtend.addDataGridViewColumn("变更原因", 300);
                //m_dateGridViewExtend.addDataGridViewColumn("制单员", 80);
                //m_dateGridViewExtend.addDataGridViewColumn("审核员", 80);
                //m_dateGridViewExtend.addDataGridViewColumn("审核日期", 80);


                // 根据源单据号,得到订单详细单据
                if (m_srcChangeOrderBillNumber.Length > 0)
                {
                    SortedDictionary <int, FormProjectMaterielChangeTable> changtList = FormProjectInfoChange.getInctance().getChangeListFromSrcBillNumber(m_srcChangeOrderBillNumber);
                    m_dataGridRecordCount = changtList.Count;

                    for (int index = 0; index < changtList.Count; index++)
                    {
                        FormProjectMaterielChangeTable record = new FormProjectMaterielChangeTable();
                        record = (FormProjectMaterielChangeTable)changtList[index];

                        ArrayList temp = new ArrayList();

                        temp.Add(record.pkey);
                        temp.Add(record.srcBillNumber);
                        temp.Add(record.designStaffName);
                        temp.Add(record.billNumber);
                        temp.Add(record.changeReason);
                        temp.Add(record.makeOrderStaffName);
                        temp.Add(record.orderrReviewName);
                        temp.Add(record.reviewDate);

                        sortedDictionaryList.Add(sortedDictionaryList.Count, temp);
                    }

                    m_dateGridViewExtend.initDataGridViewData(sortedDictionaryList, 3);
                }
            }
        }
        public IHttpActionResult PostPurchase([FromBody] MvcPurchaseViewModel PurchaseViewModel)
        {
            using (DBEntities entities = new DBEntities())
            {
                using (DbContextTransaction transaction = entities.Database.BeginTransaction(System.Data.IsolationLevel.ReadCommitted))
                {
                    try
                    {
                        PurchaseOrderTable _PTable = new PurchaseOrderTable();

                        _PTable.CompanyId              = PurchaseViewModel.CompanyId;
                        _PTable.UserId                 = PurchaseViewModel.UserId;
                        _PTable.PurchaseID             = PurchaseViewModel.PurchaseId.ToString();
                        _PTable.VenderId               = PurchaseViewModel.VenderId;
                        _PTable.PurchaseRefNumber      = PurchaseViewModel.PurchaseRefNumber;
                        _PTable.PurchaseDate           = Convert.ToDateTime(PurchaseViewModel.PurchaseDate);
                        _PTable.PurchaseDueDate        = PurchaseViewModel.PurchaseDueDate;
                        _PTable.PurchaseSubTotal       = PurchaseViewModel.PurchaseSubTotal;
                        _PTable.PurchaseDiscountAmount = PurchaseViewModel.PurchaseDiscountAmount;
                        _PTable.PurchaseTotoalAmount   = PurchaseViewModel.PurchaseTotoalAmount;
                        _PTable.PurchaseVenderNote     = PurchaseViewModel.PurchaseVenderNote;
                        _PTable.Vat6   = PurchaseViewModel.Vat6;
                        _PTable.Vat21  = PurchaseViewModel.Vat21;
                        _PTable.Status = "open";
                        _PTable.Type   = StatusEnum.Goods.ToString();

                        _PTable = entities.PurchaseOrderTables.Add(_PTable);
                        entities.SaveChanges();

                        if (PurchaseViewModel.PurchaseOrderList != null)
                        {
                            foreach (PurchaseOrderDetailsTable item in PurchaseViewModel.PurchaseOrderList)
                            {
                                PurchaseOrderDetailsTable purchadeDetail = new PurchaseOrderDetailsTable();
                                purchadeDetail.PurchaseOrderDetailsId = item.PurchaseOrderDetailsId;
                                purchadeDetail.PurchaseItemId         = item.PurchaseItemId;
                                purchadeDetail.PurchaseDescription    = item.PurchaseDescription;
                                purchadeDetail.PurchaseQuantity       = item.PurchaseQuantity;
                                purchadeDetail.PurchaseItemRate       = item.PurchaseItemRate;
                                purchadeDetail.PurchaseTotal          = item.PurchaseTotal;
                                purchadeDetail.Type                  = item.Type;
                                purchadeDetail.RowSubTotal           = item.RowSubTotal;
                                purchadeDetail.PurchaseVatPercentage = item.PurchaseVatPercentage;
                                purchadeDetail.PurchaseId            = _PTable.PurchaseOrderID;
                                purchadeDetail.ServiceDate           = item.ServiceDate;
                                entities.PurchaseOrderDetailsTables.Add(purchadeDetail);
                                entities.SaveChanges();
                            }
                        }

                        AccountTransictionTable Account = new AccountTransictionTable();
                        Account.TransictionDate       = DateTime.Now;
                        Account.TransictionNumber     = base64Guid;
                        Account.TransictionType       = "Purchase";
                        Account.CreationTime          = DateTime.Now.TimeOfDay;
                        Account.AddedBy               = 1;
                        Account.FK_CompanyId          = PurchaseViewModel.CompanyId;
                        Account.FKPaymentTerm         = 1;
                        Account.TransictionRefrenceId = _PTable.PurchaseOrderID.ToString();
                        //Accounts payable  Transaction
                        int Accountpayble = AccountIdByName("Accounts payable", (int)PurchaseViewModel.CompanyId);

                        if (Accountpayble != 0)
                        {
                            Account.Dr           = 0.00;
                            Account.Cr           = PurchaseViewModel.PurchaseTotoalAmount;
                            Account.FK_AccountID = Accountpayble;
                            entities.AccountTransictionTables.Add(Account);
                            entities.SaveChanges();
                        }
                        // Cost Of Goods Transaction
                        int CostOfGood = AccountIdByName("Cost Of Goods", (int)PurchaseViewModel.CompanyId);
                        if (CostOfGood != 0)
                        {
                            Account.Cr           = 0.00;
                            Account.Dr           = PurchaseViewModel.PurchaseSubTotal;
                            Account.FK_AccountID = CostOfGood;
                            entities.AccountTransictionTables.Add(Account);
                            entities.SaveChanges();
                        }

                        // Input VAT Trnsaction
                        int VatAccountId = AccountIdByName("Input VAT", (int)PurchaseViewModel.CompanyId);

                        if (VatAccountId != 0)
                        {
                            Account.Cr           = 0.00;
                            Account.Dr           = PurchaseViewModel.Vat21 + PurchaseViewModel.Vat6;
                            Account.FK_AccountID = VatAccountId;
                            entities.AccountTransictionTables.Add(Account);
                            int Id = entities.SaveChanges();
                        }

                        MvcPurchaseModel pModel = new MvcPurchaseModel();
                        pModel.PurchaseOrderID = _PTable.PurchaseOrderID;
                        transaction.Commit();
                        return(Ok(pModel));
                    }
                    catch (Exception)
                    {
                        transaction.Rollback();
                        return(BadRequest());
                    }
                }
            }
        }
        public IHttpActionResult PutPurchaseTable(int id, MvcPurchaseViewModel PViewModel)
        {
            string Ref = PViewModel.PurchaseOrderID.ToString();
            //accountTransictionTable.CreationTime = null;

            PurchaseOrderTable PTable = new PurchaseOrderTable();

            using (DBEntities _dbcotext = new DBEntities())
            {
                using (DbContextTransaction transaction = _dbcotext.Database.BeginTransaction(System.Data.IsolationLevel.ReadCommitted))
                {
                    try
                    {
                        PTable.PurchaseID             = PViewModel.PurchaseId.ToString();
                        PTable.PurchaseOrderID        = Convert.ToInt32(PViewModel.PurchaseOrderID);
                        PTable.PurchaseRefNumber      = PViewModel.PurchaseRefNumber;
                        PTable.CompanyId              = PViewModel.CompanyId;
                        PTable.VenderId               = PViewModel.VenderId;
                        PTable.UserId                 = PViewModel.UserId;
                        PTable.PurchaseDate           = PViewModel.PurchaseDate;
                        PTable.PurchaseDueDate        = PViewModel.PurchaseDueDate;
                        PTable.PurchaseSubTotal       = PViewModel.PurchaseSubTotal;
                        PTable.PurchaseDiscountAmount = PViewModel.PurchaseDiscountAmount;
                        PTable.PurchaseTotoalAmount   = PViewModel.PurchaseTotoalAmount;
                        PTable.PurchaseVenderNote     = PViewModel.PurchaseVenderNote;
                        PTable.Vat6   = PViewModel.Vat6;
                        PTable.Vat21  = PViewModel.Vat21;
                        PTable.Status = "open";
                        PTable.Type   = StatusEnum.Goods.ToString();

                        _dbcotext.Entry(PTable).State = EntityState.Modified;
                        _dbcotext.SaveChanges();

                        if (PViewModel.PurchaseOrderList != null)
                        {
                            foreach (PurchaseOrderDetailsTable item in PViewModel.PurchaseOrderList)
                            {
                                PurchaseOrderDetailsTable DTable = new PurchaseOrderDetailsTable();
                                DTable.PurchaseOrderDetailsId = item.PurchaseOrderDetailsId;
                                DTable.PurchaseItemId         = item.PurchaseItemId;
                                DTable.PurchaseDescription    = item.PurchaseDescription;
                                DTable.PurchaseQuantity       = item.PurchaseQuantity;
                                DTable.PurchaseItemRate       = item.PurchaseItemRate;
                                DTable.Type                  = item.Type;
                                DTable.RowSubTotal           = item.RowSubTotal;
                                DTable.PurchaseDescription   = item.PurchaseDescription;
                                PTable.VenderId              = PViewModel.VenderId;
                                DTable.ServiceDate           = item.ServiceDate;
                                PTable.CompanyId             = PViewModel.CompanyId;
                                DTable.PurchaseTotal         = item.PurchaseTotal;
                                DTable.PurchaseVatPercentage = item.PurchaseVatPercentage;
                                DTable.PurchaseId            = PViewModel.PurchaseOrderID;

                                if (DTable.PurchaseOrderDetailsId == 0)
                                {
                                    _dbcotext.PurchaseOrderDetailsTables.Add(DTable);
                                    _dbcotext.SaveChanges();
                                }
                                else
                                {
                                    _dbcotext.Entry(DTable).State = EntityState.Modified;
                                    _dbcotext.SaveChanges();
                                }
                            }

                            AccountTransictionTable Account = new AccountTransictionTable();
                            Account.TransictionDate       = DateTime.Now;
                            Account.TransictionNumber     = base64Guid;
                            Account.TransictionType       = "Purchase";
                            Account.CreationTime          = DateTime.Now.TimeOfDay;
                            Account.AddedBy               = PViewModel.UserId;
                            Account.FK_CompanyId          = PViewModel.CompanyId;
                            Account.FKPaymentTerm         = 1;
                            Account.TransictionRefrenceId = PTable.PurchaseOrderID.ToString();

                            //Accounts payable  Transaction
                            List <AccountTransictionTable> List = new List <AccountTransictionTable>();
                            List = _dbcotext.AccountTransictionTables.Where(t => t.TransictionRefrenceId == Ref.ToString()).ToList();
                            _dbcotext.AccountTransictionTables.RemoveRange(_dbcotext.AccountTransictionTables.Where(F => F.TransictionRefrenceId == Ref.ToString()));
                            _dbcotext.SaveChanges();

                            int Accountpayble = AccountIdByName("Accounts payable", (int)PViewModel.CompanyId);

                            if (Accountpayble != 0)
                            {
                                Account.Dr           = 0.00;
                                Account.Cr           = PViewModel.PurchaseTotoalAmount;
                                Account.FK_AccountID = Accountpayble;
                                _dbcotext.AccountTransictionTables.Add(Account);
                                _dbcotext.SaveChanges();
                            }

                            // Cost Of Goods Transaction
                            int CostOfGood = AccountIdByName("Cost Of Goods", (int)PViewModel.CompanyId);
                            if (CostOfGood != 0)
                            {
                                Account.Cr           = 0.00;
                                Account.Dr           = PViewModel.PurchaseSubTotal;
                                Account.FK_AccountID = CostOfGood;
                                _dbcotext.AccountTransictionTables.Add(Account);
                                _dbcotext.SaveChanges();
                            }

                            // Input VAT Trnsaction
                            int VatAccountId = AccountIdByName("Input VAT", (int)PViewModel.CompanyId);

                            if (VatAccountId != 0)
                            {
                                Account.Cr           = 0.00;
                                Account.Dr           = PViewModel.Vat21 + PViewModel.Vat6;
                                Account.FK_AccountID = VatAccountId;
                                _dbcotext.AccountTransictionTables.Add(Account);
                                int Id = _dbcotext.SaveChanges();
                            }


                            transaction.Commit();
                            return(Ok());
                        }
                    }
                    catch (Exception)
                    {
                        transaction.Rollback();
                        return(BadRequest());
                    }
                    return(BadRequest());
                }
            }
            /////db.Entry(PurchaseTable).State = EntityState.Modified;
            //db.SaveChanges();
            //        return Ok(PurchaseTable);
        }