Пример #1
0
            public CResult Update(CMTMaster oMTMaster, Dictionary <string, CMTDetails> oMTFinalQtyDic)
            {
                List <CInventory> oSrcInvtList = new List <CInventory>();
                List <CInventory> oDesInvtList = new List <CInventory>();

                oResult = new CResult();
                conn    = oConnManager.GetConnection(out s_DBError);
                if (conn != null)
                {
                    SqlCommand cmd = new SqlCommand();
                    cmd.Connection = conn;

                    cmd.Transaction = oConnManager.BeginTransaction();
                    try
                    {
                        cmd.CommandText = "sp_MTMstr_Update";
                        cmd.CommandType = CommandType.StoredProcedure;

                        cmd.Parameters.AddWithValue("@MTMstr_OID", oMTMaster.MTMstr_OID);
                        cmd.Parameters.AddWithValue("@MTMstr_Branch", oMTMaster.MTMstr_Branch);
                        cmd.Parameters.AddWithValue("@MTMstr_Code", oMTMaster.MTMstr_Code);
                        cmd.Parameters.AddWithValue("@MTMstr_Date", oMTMaster.MTMstr_Date);
                        cmd.Parameters.AddWithValue("@MTMstr_DOrder", oMTMaster.MTMstr_DOrder);

                        cmd.Parameters.AddWithValue("@MTMstr_Creator", oMTMaster.Creator);
                        cmd.Parameters.AddWithValue("@MTMstr_CreationDate", oMTMaster.CreationDate);
                        cmd.Parameters.AddWithValue("@MTMstr_UpdatedBy", oMTMaster.UpdateBy);
                        cmd.Parameters.AddWithValue("@MTMstr_UpdateDate", oMTMaster.UpdateDate);
                        cmd.Parameters.AddWithValue("@MTMstr_IsActive", (oMTMaster.IsActive == "Y") ? 1 : 0);
                        cmd.Parameters.AddWithValue("@MTMstr_Remarks", oMTMaster.Remarks);

                        cmd.ExecuteNonQuery();

                        cmd.CommandText = "Delete from t_MTDtls where MTDtls_MstrOID=@MTMstr_OID";
                        cmd.CommandType = CommandType.Text;
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("@MTMstr_OID", oMTMaster.MTMstr_OID);
                        cmd.ExecuteNonQuery();

                        foreach (CMTDetails oDetails in oMTMaster.MTMstr_DetailsList)
                        {
                            cmd.CommandText = "sp_MTDtls_Insert";
                            cmd.CommandType = CommandType.StoredProcedure;

                            cmd.Parameters.Clear();
                            cmd.Parameters.AddWithValue("@MTDtls_Branch", oDetails.MTDtls_Branch);
                            cmd.Parameters.AddWithValue("@MTDtls_OID", oDetails.MTDtls_OID);
                            cmd.Parameters.AddWithValue("@MTDtls_MstrOID", oMTMaster.MTMstr_OID);
                            cmd.Parameters.AddWithValue("@MTDtls_ItemOID", oDetails.MTDtls_ItemOID);
                            cmd.Parameters.AddWithValue("@MTDtls_IssQty", oDetails.MTDtls_IssQty);
                            cmd.Parameters.AddWithValue("@MTDtls_IssUOMOID", oDetails.MTDtls_IssUOMOID);
                            cmd.Parameters.AddWithValue("@MTDtls_SBranOID", oDetails.MTDtls_SBranOID);
                            cmd.Parameters.AddWithValue("@MTDtls_SrcLocOID", oDetails.MTDtls_SrcLocOID);
                            cmd.Parameters.AddWithValue("@MTDtls_SrcInvTyp", oDetails.MTDtls_SrcInvTyp);
                            cmd.Parameters.AddWithValue("@MTDtls_DBranOID", oDetails.MTDtls_DBranOID);
                            cmd.Parameters.AddWithValue("@MTDtls_DestLocOID", oDetails.MTDtls_DestLocOID);
                            cmd.Parameters.AddWithValue("@MTDtls_DesInvtyp", oDetails.MTDtls_DesInvtyp);
                            cmd.Parameters.AddWithValue("@MTDtls_RQty", oDetails.MTDtls_RQty);
                            cmd.Parameters.AddWithValue("@MTDtls_RUOMOID", oDetails.MTDtls_RUOMOID);
                            cmd.Parameters.AddWithValue("@MTDtls_Status", oDetails.MTDtls_Status);


                            cmd.ExecuteNonQuery();
                        }

                        foreach (CMTDetails oDetails in oMTFinalQtyDic.Values)
                        {
                            // populate inv list(decrease)
                            CInventory oInventory = new CInventory();

                            oInventory.Invt_Branch    = oDetails.MTDtls_Branch;
                            oInventory.Invt_BranchOID = oDetails.MTDtls_SBranOID;
                            oInventory.Invt_InvType   = oDetails.MTDtls_SrcInvTyp;
                            oInventory.Invt_ItemOID   = oDetails.MTDtls_ItemOID;
                            oInventory.Invt_LocOID    = oDetails.MTDtls_SrcLocOID;
                            oInventory.Invt_QTY       = oDetails.MTDtls_IssQty;

                            oSrcInvtList.Add(oInventory);

                            // populate inv list(increase)
                            oInventory = new CInventory();

                            oInventory.Invt_Branch    = oDetails.MTDtls_Branch;
                            oInventory.Invt_BranchOID = oDetails.MTDtls_DBranOID;
                            oInventory.Invt_InvType   = oDetails.MTDtls_DesInvtyp;
                            oInventory.Invt_ItemOID   = oDetails.MTDtls_ItemOID;
                            oInventory.Invt_LocOID    = oDetails.MTDtls_DestLocOID;
                            oInventory.Invt_QTY       = oDetails.MTDtls_IssQty;

                            oDesInvtList.Add(oInventory);
                        }


                        //Update inv

                        CInventoryBO oInventoryBO = new CInventoryBO();
                        oResult = oInventoryBO.InvtIncForMT(oSrcInvtList, oDesInvtList);

                        if (oResult.IsSuccess)
                        {
                            oConnManager.Commit();
                            oResult.IsSuccess = true;
                        }
                        else
                        {
                            oResult.ErrMsg    = oConnManager.Rollback();
                            oResult.IsSuccess = false;
                        }
                    }
                    catch (SqlException e)
                    {
                        string sRollbackError = oConnManager.Rollback();

                        oResult.IsSuccess = false;
                        oResult.ErrMsg    = sRollbackError.Equals("") ? oConnManager.GetErrorMessage(e) : sRollbackError;
                    }
                    finally
                    {
                        oConnManager.Close();
                    }
                }
                else
                {
                    oResult.IsSuccess = false;
                    oResult.ErrMsg    = s_DBError;
                }

                return(oResult);
            }