/// <summary>
        /// 回退单据
        /// </summary>
        /// <param name="billNo">单据号</param>
        /// <param name="strBillStatus">单据状态</param>
        /// <param name="error">出错时返回错误信息,无错时返回null</param>
        /// <param name="strRebackReason">回退原因</param>
        /// <returns>操作成功返回True,操作失败返回False</returns>
        public bool ReturnBill(string billNo, string strBillStatus, out string error, string strRebackReason)
        {
            error = null;

            try
            {
                m_billMessageServer.BillType = "销售清单";
                DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

                var result = from a in dataContxt.S_MarketingPartBill
                             where a.BillNo == billNo
                             select a;

                string strMsg = "";

                if (result.Count() == 1)
                {
                    S_MarketingPartBill bill = result.Single();

                    switch (strBillStatus)
                    {
                    case "等待销售人员确认":
                        bill.CW_Auditor = "";
                        bill.YX_Auditor = "";
                        bill.Status     = "等待销售人员确认";

                        strMsg = string.Format("{0}号销售清单已回退,请您重新处理单据; 回退原因为" + strRebackReason, billNo);
                        m_billMessageServer.PassFlowMessage(billNo, strMsg, BillFlowMessage_ReceivedUserType.用户, result.Single().Recorder);

                        break;
                        //case "等待主管审核":
                        //    bill.YX_Auditor = "";
                        //    bill.CW_Auditor = "";
                        //    bill.Status = "等待主管审核";

                        //    strMsg = string.Format("{0}号销售清单已回退,请您重新处理单据; 回退原因为" + strRebackReason, billNo);
                        //    m_billMessageServer.PassFlowMessage(billNo, strMsg, RoleEnum.营销主管.ToString(), false);
                        //break;
                    }

                    SystemLog_MarketPart log = new SystemLog_MarketPart();

                    log.BillNo     = billNo;
                    log.Content    = ServerTime.Time + "【" + BasicInfo.LoginName + "】回退。";
                    log.Recorder   = BasicInfo.LoginID;
                    log.RecordTime = ServerTime.Time;

                    dataContxt.SystemLog_MarketPart.InsertOnSubmit(log);
                }

                dataContxt.SubmitChanges();
                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }
Example #2
0
        private void 营销主管toolStripButton_Click(object sender, EventArgs e)
        {
            if (m_marketPartBillServer.GetDataByBillNo(m_billNo).Rows[0]["单据状态"].ToString() == "等待主管审核")
            {
                if (txtClient.Text.Trim() != "" && txtClient.Text.Trim() != "全部" && txtClient.Text.Trim() != "其它")
                {
                    S_MarketingPartBill bill = new S_MarketingPartBill();

                    bill.Status           = "等待财务审核";
                    bill.BillNo           = m_billNo;
                    bill.AssociatedBillNo = txtAssociated.Text;
                    bill.YX_Auditor       = BasicInfo.LoginID;
                    bill.YX_AuditTime     = ServerTime.Time;

                    if (!m_marketPartBillServer.UpdateData(bill, m_listMarketPart, "销售主管", out m_error))
                    {
                        MessageDialog.ShowPromptMessage(m_error);
                        return;
                    }
                    else
                    {
                        MessageDialog.ShowPromptMessage("确认成功!");

                        m_billMessageServer.PassFlowMessage(m_billNo,
                                                            string.Format("【客户名称】:{0}    ※※※ 等待【会计】处理", txtClient.Text), BillFlowMessage_ReceivedUserType.角色,
                                                            CE_RoleEnum.会计.ToString());

                        this.Close();
                    }
                }
                else
                {
                    MessageDialog.ShowPromptMessage("客户不正确,请重新选择!");
                    return;
                }
            }
            else
            {
                MessageDialog.ShowPromptMessage("请确认单据状态!");
                return;
            }
        }
        /// <summary>
        /// 打印单据添加打印次数,记录日志
        /// </summary>
        /// <param name="billNo">单据号</param>
        /// <param name="error">错误信息</param>
        /// <returns>成功反复True,失败返回false</returns>
        public bool PrintUpodateData(string billNo, out string error)
        {
            error = "";

            try
            {
                DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

                var result = from a in dataContxt.S_MarketingPartBill
                             where a.BillNo == billNo
                             select a;

                if (result.Count() == 1)
                {
                    S_MarketingPartBill bill = result.Single();

                    bill.PrintCount += 1;

                    SystemLog_MarketPart log = new SystemLog_MarketPart();

                    log.BillNo     = billNo;
                    log.Content    = ServerTime.Time + "财务人员【" + BasicInfo.LoginName + "】打印。";
                    log.Recorder   = BasicInfo.LoginID;
                    log.RecordTime = ServerTime.Time;

                    dataContxt.SystemLog_MarketPart.InsertOnSubmit(log);
                }

                dataContxt.SubmitChanges();
                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }
        /// <summary>
        /// 修改销售清单
        /// </summary>
        /// <param name="marketPartBill">销售清单主表信息</param>
        /// <param name="marketPritList">销售清单子表信息</param>
        /// <param name="role">操作角色</param>
        /// <param name="error">错误信息</param>
        /// <returns>修改成功返回True否则返回False</returns>
        public bool UpdateData(S_MarketingPartBill marketPartBill, List <View_S_MarketintPartList> marketPritList, string role, out string error)
        {
            error = "";

            try
            {
                DataTable dt = m_findSellIn.GetBill(marketPartBill.AssociatedBillNo, 0);

                DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

                var result = from a in dataContxt.S_MarketingPartBill
                             where a.BillNo == marketPartBill.BillNo && a.AssociatedBillNo == marketPartBill.AssociatedBillNo
                             select a;

                error = "判断角色";

                if (result.Count() > 0)
                {
                    S_MarketingPartBill bill = result.Single();

                    switch (role)
                    {
                    case "销售主管":
                        bill.YX_Auditor   = marketPartBill.YX_Auditor;
                        bill.YX_AuditTime = marketPartBill.YX_AuditTime;
                        bill.Status       = marketPartBill.Status;

                        SystemLog_MarketPart YXAuditorlog = new SystemLog_MarketPart();

                        YXAuditorlog.BillNo  = marketPartBill.BillNo;
                        YXAuditorlog.Content = marketPartBill.YX_AuditTime + "销售主管【"
                                               + m_personnerArchiveServer.GetPersonnelInfo(marketPartBill.YX_Auditor).Name + "】审核";
                        YXAuditorlog.Recorder   = marketPartBill.YX_Auditor;
                        YXAuditorlog.RecordTime = Convert.ToDateTime(marketPartBill.YX_AuditTime);

                        dataContxt.SystemLog_MarketPart.InsertOnSubmit(YXAuditorlog);

                        if (dt != null && dt.Rows.Count > 0)
                        {
                            if (m_findSellIn.AuditingBill(Convert.ToInt32(dt.Rows[0]["ID"].ToString()), marketPartBill.Remark, out error))
                            {
                                string storage = dt.Rows[0]["storageID"].ToString();

                                m_billMessageServer.BillType = "营销出库单";
                                m_billMessageServer.PassFlowMessage(marketPartBill.AssociatedBillNo,
                                                                    string.Format("{0} 号营销出库单,请财务审核", marketPartBill.AssociatedBillNo),
                                                                    BillFlowMessage_ReceivedUserType.角色, CE_RoleEnum.会计.ToString());

                                error = error + "/n" + "主管审核成功";
                            }
                            else
                            {
                                return(false);
                            }
                        }
                        else
                        {
                            error = "找不到营销出库单【" + marketPartBill.AssociatedBillNo + "】";
                            return(false);
                        }

                        break;

                    case "销售":
                        bill.Recorder           = marketPartBill.Recorder;
                        bill.RecordTime         = marketPartBill.RecordTime;
                        bill.Status             = marketPartBill.Status;
                        bill.CiteTerminalClient = marketPartBill.CiteTerminalClient;
                        bill.IsCarLoad          = marketPartBill.IsCarLoad;

                        if (bill.ClientID != marketPartBill.ClientID)
                        {
                            bill.Remark = marketPartBill.Remark;

                            SystemLog_MarketPart log = new SystemLog_MarketPart();

                            log.BillNo  = marketPartBill.BillNo;
                            log.Content = marketPartBill.RecordTime + "销售人员【"
                                          + m_personnerArchiveServer.GetPersonnelInfo(marketPartBill.Recorder).Name + "】修改客户,将"
                                          + m_clientServer.GetClientName(result.Single().ClientID) + "修改为:"
                                          + m_clientServer.GetClientName(bill.ClientID) + "】";
                            log.Recorder   = marketPartBill.Recorder;
                            log.RecordTime = marketPartBill.RecordTime;

                            dataContxt.SystemLog_MarketPart.InsertOnSubmit(log);
                        }
                        else
                        {
                            bill.Remark = marketPartBill.Remark;

                            SystemLog_MarketPart log = new SystemLog_MarketPart();

                            log.BillNo  = marketPartBill.BillNo;
                            log.Content = marketPartBill.RecordTime + "销售人员【"
                                          + m_personnerArchiveServer.GetPersonnelInfo(marketPartBill.Recorder).Name + "】确认";
                            log.Recorder   = marketPartBill.Recorder;
                            log.RecordTime = marketPartBill.RecordTime;

                            dataContxt.SystemLog_MarketPart.InsertOnSubmit(log);
                        }

                        bill.ClientID = marketPartBill.ClientID;
                        dataContxt.SubmitChanges();

                        foreach (View_S_MarketintPartList item in marketPritList)
                        {
                            var resultList = from c in dataContxt.S_MarketintPartList
                                             where c.BillNo == item.单据号 && c.GoodsID == item.GoodsID && c.BatchNo == item.批次号
                                             select c;

                            if (resultList.Count() > 0)
                            {
                                S_MarketintPartList list = resultList.Single();

                                if (list.SellUnitPrice != item.销售单价)
                                {
                                    SystemLog_MarketPart log = new SystemLog_MarketPart();

                                    log.BillNo  = marketPartBill.BillNo;
                                    log.Content = marketPartBill.RecordTime + "销售人员【"
                                                  + m_personnerArchiveServer.GetPersonnelInfo(marketPartBill.Recorder).Name
                                                  + "】修改销售单价,将" + item.物品名称 + "销售单价" + resultList.Single().SellUnitPrice
                                                  + "修改为:" + item.销售单价 + "】";
                                    log.Recorder   = marketPartBill.Recorder;
                                    log.RecordTime = marketPartBill.RecordTime;

                                    dataContxt.SystemLog_MarketPart.InsertOnSubmit(log);
                                    dataContxt.SubmitChanges();
                                }

                                list.Reamrk          = item.备注;
                                list.SellUnitPrice   = item.销售单价;
                                list.UnitPrice       = item.最低定价;
                                list.AssemblyCarCode = item.主机厂代码;
                                list.AssemblyCarName = item.主机厂物品名称;

                                dataContxt.SubmitChanges();
                            }
                        }

                        var resultMarketing = from c in dataContxt.S_MarketingBill
                                              where c.DJH == marketPartBill.AssociatedBillNo
                                              select c;

                        if (resultMarketing.Count() > 0)
                        {
                            S_MarketingBill marketing = resultMarketing.Single();

                            marketing.DJZT_FLAG = "已保存";

                            m_billMessageServer.BillType = "营销出库单";
                            m_billMessageServer.PassFlowMessage(marketPartBill.AssociatedBillNo,
                                                                string.Format("{0} 号营销出库单,请主管审核", marketPartBill.AssociatedBillNo),
                                                                BillFlowMessage_ReceivedUserType.角色, CE_RoleEnum.营销主管.ToString());
                        }
                        else
                        {
                            error = "找不到营销出库单【" + marketPartBill.AssociatedBillNo + "】";
                            return(false);
                        }

                        break;

                    case "财务":
                        bill.CW_Auditor   = marketPartBill.CW_Auditor;
                        bill.CW_AuditTime = marketPartBill.CW_AuditTime;
                        bill.Status       = marketPartBill.Status;

                        if (bill.ClientID != marketPartBill.ClientID)
                        {
                            SystemLog_MarketPart log = new SystemLog_MarketPart();

                            log.BillNo  = marketPartBill.BillNo;
                            log.Content = marketPartBill.CW_AuditTime + "财务人员【"
                                          + m_personnerArchiveServer.GetPersonnelInfo(marketPartBill.CW_Auditor).Name
                                          + "】修改客户,将" + m_clientServer.GetClientName(result.Single().ClientID)
                                          + "修改为:" + m_clientServer.GetClientName(bill.ClientID) + "】";
                            log.Recorder   = marketPartBill.CW_Auditor;
                            log.RecordTime = Convert.ToDateTime(marketPartBill.CW_AuditTime);

                            dataContxt.SystemLog_MarketPart.InsertOnSubmit(log);
                        }
                        else
                        {
                            SystemLog_MarketPart log = new SystemLog_MarketPart();

                            log.BillNo  = marketPartBill.BillNo;
                            log.Content = marketPartBill.CW_AuditTime + "财务人员【"
                                          + m_personnerArchiveServer.GetPersonnelInfo(marketPartBill.CW_Auditor).Name + "】审核";
                            log.Recorder   = marketPartBill.CW_Auditor;
                            log.RecordTime = Convert.ToDateTime(marketPartBill.CW_AuditTime);

                            dataContxt.SystemLog_MarketPart.InsertOnSubmit(log);
                        }

                        bill.ClientID = marketPartBill.ClientID;
                        bill.Remark   = marketPartBill.Remark;

                        foreach (View_S_MarketintPartList item in marketPritList)
                        {
                            var resultList = from c in dataContxt.S_MarketintPartList
                                             where c.BillNo == item.单据号 && c.GoodsID == item.GoodsID && c.BatchNo == item.批次号 &&
                                             c.Provider == item.供应商
                                             select c;

                            if (resultList.Count() > 0)
                            {
                                S_MarketintPartList list = resultList.Single();

                                if (list.SellUnitPrice != item.销售单价)
                                {
                                    SystemLog_MarketPart log = new SystemLog_MarketPart();

                                    log.BillNo  = marketPartBill.BillNo;
                                    log.Content = marketPartBill.CW_AuditTime + "财务人员【"
                                                  + m_personnerArchiveServer.GetPersonnelInfo(marketPartBill.CW_Auditor).Name
                                                  + "】修改销售单价,将销售单价" + resultList.Single().SellUnitPrice + "修改为:"
                                                  + item.销售单价 + "】";
                                    log.Recorder   = marketPartBill.CW_Auditor;
                                    log.RecordTime = Convert.ToDateTime(marketPartBill.CW_AuditTime);

                                    dataContxt.SystemLog_MarketPart.InsertOnSubmit(log);
                                }

                                list.Reamrk        = item.备注;
                                list.SellUnitPrice = item.销售单价;
                            }
                        }

                        if (dt != null && dt.Rows.Count > 0)
                        {
                            if (dt.Rows[0]["DJZT_FLAG"].ToString() == "等待财务审核")
                            {
                                if (m_findSellIn.RetrialBill(marketPartBill.AssociatedBillNo, marketPartBill.Remark, out error))
                                {
                                    string storage = dt.Rows[0]["storageID"].ToString();

                                    m_billMessageServer.BillType = "营销出库单";
                                    m_billMessageServer.PassFlowMessage(marketPartBill.AssociatedBillNo,
                                                                        string.Format("{0} 号营销出库单,请仓管员确认", marketPartBill.AssociatedBillNo),
                                                                        m_billMessageServer.GetRoleStringForStorage(storage).ToString(), true);
                                }
                                else
                                {
                                    return(false);
                                }
                            }
                        }
                        else
                        {
                            error = "找不到营销出库单【" + marketPartBill.AssociatedBillNo + "】";
                            return(false);
                        }

                        break;

                    default:
                        break;
                    }
                }
                else
                {
                    error = "未找到相关单据";
                    return(false);
                }

                dataContxt.SubmitChanges();
                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }
Example #5
0
        private void 财务toolStripButton_Click(object sender, EventArgs e)
        {
            if (m_marketPartBillServer.GetDataByBillNo(m_billNo).Rows[0]["单据状态"].ToString() == "等待财务审核" ||
                m_marketPartBillServer.GetDataByBillNo(m_billNo).Rows[0]["单据状态"].ToString() == "已完成")
            {
                if (txtClient.Text.Trim() != "" && txtClient.Text.Trim() != "全部" && txtClient.Text.Trim() != "其它")
                {
                    if (Convert.ToDecimal(txtLowestPrice.Text) > numSellUnitPrice.Value)
                    {
                        MessageDialog.ShowPromptMessage("请重新填写销售价格!");
                        return;
                    }

                    for (int i = 0; i < m_listMarketPart.Count; i++)
                    {
                        for (int j = 0; j < dataGridView1.Rows.Count; j++)
                        {
                            if (m_listMarketPart[i].GoodsID == dataGridView1.Rows[j].Cells["GoodsID"].Value.ToString() &&
                                m_listMarketPart[i].批次号 == dataGridView1.Rows[j].Cells["批次号"].Value.ToString() &&
                                m_listMarketPart[i].供应商 == dataGridView1.Rows[j].Cells["供应商"].Value.ToString())
                            {
                                m_listMarketPart[i].备注      = m_listMarketPart[i].备注 + " " + txtRemark.Text;
                                m_listMarketPart[i].销售单价    = numSellUnitPrice.Value;
                                m_listMarketPart[i].主机厂代码   = tbsOutCode.Text;
                                m_listMarketPart[i].主机厂物品名称 = txtOutName.Text;
                                m_listMarketPart[i].最低定价    = Convert.ToDecimal(txtLowestPrice.Text);
                                m_listMarketPart[i].供应商     = txtprovider.Text.Trim();
                            }
                        }
                    }

                    S_MarketingPartBill bill = new S_MarketingPartBill();

                    bill.ClientID         = txtClient.Tag.ToString();
                    bill.Remark           = txtMainRemark.Text;
                    bill.CW_Auditor       = BasicInfo.LoginID;
                    bill.CW_AuditTime     = ServerTime.Time;
                    bill.Status           = "已完成";
                    bill.BillNo           = m_billNo;
                    bill.AssociatedBillNo = txtAssociated.Text;

                    if (!m_marketPartBillServer.UpdateData(bill, m_listMarketPart, "财务", out m_error))
                    {
                        MessageDialog.ShowPromptMessage(m_error);
                        return;
                    }
                    else
                    {
                        MessageDialog.ShowPromptMessage("审核成功!");
                    }

                    List <string> noticeUser = new List <string>();

                    noticeUser.Add(m_personnerArchiveServer.GetPersonnelViewInfoByName(txtRecorder.Text));

                    m_billMessageServer.EndFlowMessage(m_billNo,
                                                       string.Format("{0} 号销售清单已经处理完毕", m_billNo),
                                                       null, noticeUser);
                }
                else
                {
                    MessageDialog.ShowPromptMessage("客户不正确,请重新选择!");
                    return;
                }
            }
            else
            {
                MessageDialog.ShowPromptMessage("请确认单据状态!");
                return;
            }

            this.Close();
        }
Example #6
0
        private void 销售toolStripButton_Click(object sender, EventArgs e)
        {
            if (txtRecorder.Text == BasicInfo.LoginName &&
                m_marketPartBillServer.GetDataByBillNo(m_billNo).Rows[0]["单据状态"].ToString() != "已完成")
            {
                if (txtClient.Text.Trim() != "" && txtClient.Text.Trim() != "全部" && txtClient.Text.Trim() != "其它")
                {
                    S_MarketingPartBill bill = new S_MarketingPartBill();

                    bill.ClientID         = txtClient.Tag.ToString();
                    bill.Remark           = txtMainRemark.Text;
                    bill.Recorder         = BasicInfo.LoginID;
                    bill.RecordTime       = ServerTime.Time;
                    bill.Status           = "等待主管审核";
                    bill.BillNo           = m_billNo;
                    bill.AssociatedBillNo = txtAssociated.Text;

                    if (cbCarLoad.Checked)
                    {
                        bill.IsCarLoad = true;

                        if (tbsUseClient.Text.Trim() == "")
                        {
                            MessageDialog.ShowPromptMessage("请选择套用哪个整车厂的价格!");
                            return;
                        }
                        else
                        {
                            bill.CiteTerminalClient = tbsUseClient.Tag.ToString();

                            for (int i = 0; i < m_listMarketPart.Count; i++)
                            {
                                YX_LowestMarketPrice lowest = m_LowestPriceServer.GetDataByClientCode(tbsUseClient.Tag.ToString(), Convert.ToInt32(m_listMarketPart[i].GoodsID), out m_error);

                                if (lowest != null)
                                {
                                    m_listMarketPart[i].最低定价 = lowest.Price;
                                    m_listMarketPart[i].销售单价 = lowest.Price;
                                }
                                else
                                {
                                    MessageDialog.ShowPromptMessage("请在最低定价表中设置该整车厂【"
                                                                    + m_listMarketPart[i].图号型号 + m_listMarketPart[i].物品名称 + "】的最低价格!");
                                    销售toolStripButton.Enabled = false;
                                    cbCarLoad.Checked         = false;
                                    tbsUseClient.Text         = "";
                                    tbsUseClient.Tag          = "";

                                    return;
                                }
                            }
                        }
                    }
                    else
                    {
                        bill.IsCarLoad = false;

                        //什么意思 没搞明白? by cjb on 2015.10.19
                        if (Convert.ToDecimal(txtLowestPrice.Text) > numSellUnitPrice.Value)
                        {
                            MessageDialog.ShowPromptMessage("请重新填写销售价格!");
                            return;
                        }
                    }

                    if (!m_marketPartBillServer.UpdateData(bill, m_listMarketPart, "销售", out m_error))
                    {
                        MessageDialog.ShowPromptMessage(m_error);
                        return;
                    }
                    else
                    {
                        MessageDialog.ShowPromptMessage("确认成功!");

                        if (BasicInfo.DeptCode.Contains("YX"))
                        {
                            m_billMessageServer.PassFlowMessage(m_billNo,
                                                                string.Format("【客户名称】:{0}    ※※※ 等待【主管】处理", txtClient.Text), BillFlowMessage_ReceivedUserType.角色,
                                                                m_billMessageServer.GetDeptDirectorRoleName(BasicInfo.DeptCode).ToList());
                        }
                        else
                        {
                            m_billMessageServer.PassFlowMessage(m_billNo,
                                                                string.Format("【客户名称】:{0}    ※※※ 等待【负责人】处理", txtClient.Text), BillFlowMessage_ReceivedUserType.角色,
                                                                m_billMessageServer.GetDeptPrincipalRoleName(BasicInfo.DeptCode).ToList());
                        }
                    }
                }
                else
                {
                    MessageDialog.ShowPromptMessage("客户不正确,请重新选择!");
                    return;
                }
            }
            else
            {
                MessageDialog.ShowPromptMessage("您不是销售人员【" + txtRecorder.Text + "】或单据已完成,不能进行此操作!");
                return;
            }

            this.Close();
        }