Esempio n. 1
0
        public List <CIBatchDetail> GetBatchDetail(string BatchNo, int ItemID, int LocationID, ref string errorMessage)
        {
            List <CIBatchDetail> BatchList = new List <CIBatchDetail>();

            System.Data.DataTable dTable = new DataTable();
            try
            {
                string          dbMessage = string.Empty;
                DBParameterList dbParam   = new DBParameterList();
                dbParam.Add(new DBParameter("@BatchNo", BatchNo, DbType.String));
                dbParam.Add(new DBParameter("@ItemID", ItemID, DbType.String));
                dbParam.Add(new DBParameter("@LocationId", LocationID, DbType.Int32));
                dbParam.Add(new DBParameter(Common.PARAM_OUTPUT, dbMessage, DbType.String, ParameterDirection.Output, Common.PARAM_OUTPUT_LENGTH));

                using (DataTaskManager dt = new DataTaskManager())
                {
                    dTable = dt.ExecuteDataTable(SP_BATCH_DETAIL, dbParam);
                    if (dbMessage == string.Empty)
                    {
                        if (dTable != null && dTable.Rows.Count > 0)
                        {
                            foreach (System.Data.DataRow drow in dTable.Rows)
                            {
                                CIBatchDetail batch = new CIBatchDetail();
                                batch.CreateBatchObject(drow);
                                BatchList.Add(batch);
                            }
                        }
                    }
                }
                return(BatchList);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 2
0
        public bool ProcessLog(string logNo, int LocationID, int userID, List <CO> lstCo, ref String ErrorCode)
        {
            try
            {
                bool   isSuccess    = false;
                bool   isValid      = true;
                string errorMessage = string.Empty;
                //Check Batch Qty Not Available for all Items of orders
                //isValid = CI.CheckBatchForLog(logNo, LocationID, ref errorMessage);
                //if (isValid)
                {
                    List <CI> CIList = new List <CI>();
                    errorMessage = string.Empty;
                    if (lstCo != null && lstCo.Count > 0)
                    {
                        DataTaskManager dtManager = null;
                        try
                        {
                            using (dtManager = new DataTaskManager())
                            {
                                //dtManager.BeginTransaction();
                                try
                                {
                                    foreach (CO o in lstCo)
                                    {
                                        dtManager.BeginTransaction();
                                        CO COrder = new CO();
                                        COrder.GetCOAllDetails(o.CustomerOrderNo, -1);
                                        errorMessage = string.Empty;
                                        List <CIBatchDetail> ListBatch = CIBatchDetail.GetDefaultBatch(COrder.CustomerOrderNo, LocationID, ref errorMessage);
                                        CI invoice = CreateInvoiceObject(COrder, ListBatch, userID);
                                        if (invoice != null)
                                        {
                                            string ValidationCode = string.Empty;
                                            isValid      = invoice.ValidateInvoice(COrder.CODetailList, ListBatch, ref ValidationCode);
                                            errorMessage = errorMessage + ValidationCode;
                                            if (isValid)
                                            {
                                                bool isSaved = invoice.Save(ref ValidationCode);
                                                if (!isSaved)
                                                {
                                                    isSuccess = false;
                                                    ErrorCode = ValidationCode;
                                                    dtManager.RollbackTransaction();
                                                    //return isSuccess;
                                                }
                                                else
                                                {
                                                    dtManager.CommitTransaction();
                                                    ErrorCode = string.Empty;
                                                    isSuccess = true;
                                                }
                                            }
                                            else
                                            {
                                                if (ValidationCode == "40007")
                                                {
                                                    // Not sufficent Batch Qty present
                                                    ErrorCode = "40008";
                                                }
                                                else
                                                {
                                                    ErrorCode = ValidationCode;
                                                }
                                                isSuccess = false;
                                                dtManager.RollbackTransaction();
                                                //break;
                                            }
                                        }
                                        else
                                        {
                                            ErrorCode = "40029," + COrder.CustomerOrderNo;
                                            isSuccess = false;
                                            dtManager.RollbackTransaction();
                                            break;
                                        }
                                    }

                                    //dtManager.CommitTransaction();
                                    //ErrorCode = string.Empty;
                                    //isSuccess = true;
                                    //return isSuccess;
                                }

                                catch (Exception ex)
                                {
                                    throw ex;
                                }
                            }

                            //return isSuccess;
                        }
                        catch (Exception ex)
                        {
                            Common.LogException(ex);
                        }
                    }
                    else
                    {
                        //No Order found in confirmed status
                        ErrorCode = "40011";
                    }
                }
                // Error in batch qty check
                ////else if (!errorMessage.Trim().Equals(string.Empty))
                //{
                //    if (errorMessage.Trim().IndexOf("30001:") >= 0)
                //    {
                //        throw new Exception(errorMessage.Trim());
                //    }
                //    else
                //    {
                //        ErrorCode = errorMessage.Trim();
                //    }
                //}
                if (!errorMessage.Equals(""))
                {
                    MessageBox.Show(errorMessage, Common.GetMessage("10004"), MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                return(isSuccess);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 3
0
        private void CreateBatchObject(DataRow dr)
        {
            CIBatchDetail batch = new CIBatchDetail();

            if (dr.Table.Columns.Contains("AvailableQty"))
            {
                this.AvailableQty = Convert.ToDecimal(dr["AvailableQty"]);
            }

            if (dr.Table.Columns.Contains("BatchNo"))
            {
                this.BatchNo = Convert.ToString(dr["BatchNo"]);
            }

            if (dr.Table.Columns.Contains("BucketId"))
            {
                this.BucketId = Convert.ToInt32(dr["BucketId"]);
            }

            if (dr.Table.Columns.Contains("ExpDate"))
            {
                this.ExpiryDate = Convert.ToDateTime(dr["ExpDate"]).ToShortDateString();
            }

            if (dr.Table.Columns.Contains("InvoiceNo"))
            {
                this.InvoiceNo = Convert.ToString(dr["InvoiceNo"]);
            }

            if (dr.Table.Columns.Contains("ItemCode"))
            {
                this.ItemCode = Convert.ToString(dr["ItemCode"]);
            }

            if (dr.Table.Columns.Contains("ItemId"))
            {
                this.ItemId = Convert.ToInt32(dr["ItemId"]);
            }

            if (dr.Table.Columns.Contains("ManufacturingBatchNo"))
            {
                this.ManufacturerBatchNo = Convert.ToString(dr["ManufacturingBatchNo"]);
            }

            if (dr.Table.Columns.Contains("MfgDate"))
            {
                this.ManufacturingDate = Convert.ToDateTime(dr["MfgDate"]).ToShortDateString();
            }

            if (dr.Table.Columns.Contains("MRP"))
            {
                this.MRP = Convert.ToDecimal(dr["MRP"]);
            }

            if (dr.Table.Columns.Contains("Quantity"))
            {
                this.Quantity = Convert.ToDecimal(dr["Quantity"]);
            }

            if (dr.Table.Columns.Contains("RecordNo"))
            {
                this.RecordNo = Convert.ToInt32(dr["RecordNo"]);
            }

            if (dr.Table.Columns.Contains("TotalQty"))
            {
                this.TotalQuantity = Convert.ToDecimal(dr["TotalQty"]);
            }
        }
Esempio n. 4
0
 public bool ProcessLog(string logNo, int LocationID, int userID, ref String ErrorCode, ref DataTable dtItems)
 {
     try
     {
         bool   isSuccess    = false;
         bool   isValid      = true;
         string errorMessage = string.Empty;
         //Check Batch Qty Not Available for all Items of orders
         isValid = CI.CheckBatchForLog(logNo, LocationID, ref errorMessage, ref dtItems);
         if (isValid)
         {
             List <CI> CIList = new List <CI>();
             CO        order  = new CO();
             order.LogNo  = logNo;
             order.Status = (int)Common.OrderStatus.Confirmed;
             errorMessage = string.Empty;
             List <CO> lstCo = order.Search(ref errorMessage);
             if (errorMessage.Equals(string.Empty) && lstCo != null && lstCo.Count > 0)
             {
                 DataTaskManager dtManager = null;
                 try
                 {
                     using (dtManager = new DataTaskManager())
                     {
                         dtManager.BeginTransaction();
                         try
                         {
                             foreach (CO o in lstCo)
                             {
                                 CO m_Order = new CO();
                                 m_Order.GetCOAllDetails(o.CustomerOrderNo, -1);
                                 errorMessage = string.Empty;
                                 List <CIBatchDetail> ListBatch = CIBatchDetail.GetDefaultBatch(m_Order.CustomerOrderNo, LocationID, ref errorMessage);
                                 CI invoice = CreateInvoiceObject(m_Order, ListBatch, userID);
                                 if (invoice != null)
                                 {
                                     string ValidationCode = string.Empty;
                                     isValid = invoice.ValidateInvoice(m_Order.CODetailList, ListBatch, ref ValidationCode);
                                     if (isValid)
                                     {
                                         bool isSaved = invoice.Save(ref ValidationCode);
                                         if (!isSaved)
                                         {
                                             isSuccess = false;
                                             dtManager.RollbackTransaction();
                                         }
                                     }
                                     else
                                     {
                                         if (ValidationCode == "40007")
                                         {
                                             // Not sufficent Batch Qty present
                                             ErrorCode = "40008";
                                         }
                                         else
                                         {
                                             ErrorCode = ValidationCode;
                                         }
                                         isSuccess = false;
                                         dtManager.RollbackTransaction();
                                         break;
                                     }
                                 }
                                 else
                                 {
                                     ErrorCode = "40029," + m_Order.CustomerOrderNo;
                                     isSuccess = false;
                                     dtManager.RollbackTransaction();
                                     break;
                                 }
                             }
                             dtManager.CommitTransaction();
                             ErrorCode = string.Empty;
                             isSuccess = true;
                         }
                         catch (Exception ex)
                         {
                             throw ex;
                         }
                     }
                 }
                 catch (Exception ex)
                 {
                     Common.LogException(ex);
                 }
             }
             else
             {
                 //No Order found in confirmed status
                 ErrorCode = "40011";
             }
         }
         // Error in batch qty check
         else if (!errorMessage.Trim().Equals(string.Empty))
         {
             if (errorMessage.Trim().IndexOf("30001:") >= 0)
             {
                 throw new Exception(errorMessage.Trim());
             }
             else
             {
                 ErrorCode = errorMessage.Trim();
             }
         }
         return(isSuccess);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }