⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cw_fymgr.cs

📁 ASP.NET的一些开发实例,有论坛管理系统等
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using com.unicafe.common;
using Com.Ascs.Drp_KC;
using com.ascs.plp.xs;
using com.ascs.plp.cg;
using com.ascs.plp.service;
	
namespace Com.Ascs.Plp.CW
{
	/// <summary>
	/// CW_FyMgr 的摘要说明。
	/// </summary>
	public class CW_FyMgr
	{
		public CW_FyMgr()
		{
			//
			// TODO: 在此处添加构造函数逻辑
			//
		}

		// begin 
		/// <summary>
		///  由出库单生成应收账款单
		/// </summary>
		/// <param name="theCW_FYCB">要添加的CW_FYCB对象</param>
		
		public bool MakeYSD(SqlConnection cn,string sCrkdh,string jgdm,string userid)
		{
			try
			{
				Com.Ascs.Drp_KC.CRKD oCrkd		     = new Com.Ascs.Drp_KC.CRKD();   		//出入库单表对象
				Com.Ascs.Drp_KC.CRKDMgr oCrkdMgr     = new Com.Ascs.Drp_KC.CRKDMgr();		//出入库单表对象 管理类
				Com.Ascs.Drp_KC.CRKDXM oCrkdXm		 = new Com.Ascs.Drp_KC.CRKDXM();		//出入库单表细目对象
				Com.Ascs.Drp_KC.CRKDXMMgr oCrkdXmMgr = new Com.Ascs.Drp_KC.CRKDXMMgr();		//出入库单表细目对象 管理类
				
				oCrkd = (Com.Ascs.Drp_KC.CRKD)oCrkdMgr.GetCRKD(sCrkdh);    //取出入库单
				ArrayList oList = new ArrayList();
				oList = (ArrayList)oCrkdXmMgr.FindCRKDXM(sCrkdh);  //取出入库单细目

				CW_YSD oYsd			  = new CW_YSD();       //应收单表对象
				CW_YSDMgr oYsdMgr	  = new CW_YSDMgr();	//应收单表对象
				CW_YSDXM oYsdXm		  = new CW_YSDXM();		//应收单表对象
				CW_YSDXMMgr oYsdXmMgr = new CW_YSDXMMgr();	//应收单表对象
				
				double fYsje = 0;    //应收金额
				double fTotalJE = 0; //应收金额总和
				com.ascs.plp.common.DM_bj autonumber = new com.ascs.plp.common.DM_bj();  //编码方法

				if(oCrkd.YSDJBH.IndexOf("DB")!=-1)  //调拨单生成应收单
				{	
					#region 
					Com.Ascs.Drp_KC.DBD oDBD		   = new Com.Ascs.Drp_KC.DBD();				 //调拨单表对象
					Com.Ascs.Drp_KC.DBDMgr oDBDMgr	   = new Com.Ascs.Drp_KC.DBDMgr();		 //调拨单表对象的管理类
					Com.Ascs.Drp_KC.DBDXM oDBDXm	   = new Com.Ascs.Drp_KC.DBDXM();            //调拨单细目表对象
					Com.Ascs.Drp_KC.DBDXMMgr oDBDXmMgr = new Com.Ascs.Drp_KC.DBDXMMgr();     //调拨单表对象细目的管理类					
					oDBD = (DBD)oDBDMgr.GetDBD(oCrkd.YSDJBH);  //调拨单

					Com.Ascs.Drp_KC.CKB oCkb       = new Com.Ascs.Drp_KC.CKB();     //仓库表对象
					Com.Ascs.Drp_KC.CKBMgr oCKBMgr = new Com.Ascs.Drp_KC.CKBMgr();  //仓库表对象的管理类
					oCkb = (Com.Ascs.Drp_KC.CKB)oCKBMgr.GetCKB(oDBD.DCK);  //调出库

					//11111生成应收单主表						

					oYsd.YSDH	=autonumber.dmtwo("YR",jgdm);			//1应收单号
					oYsd.JGDM	= jgdm;			//2 机构代码				
					oYsd.WLHLX	= "3";			//3 往来户类型 	1:客户2:供应商3:机构4:人员
					oYsd.WLHBH	= oCkb.JGDM;		//4 往来户编号      //凋出库的机构代码
					oYsd.YSDJH	= oCrkd.CRKDH;	//5 原始单据号				
					oYsd.DJLX	= 3;			//6 单据类型  “3调拨应收”
					oYsd.HBLX	= "0901";		//7	货币类型	
					oYsd.YSJE	= 0;			//8 应收金额
					oYsd.SJYSJE = 0;			//9 实际应收金额
					oYsd.YSYE	= 0;			//10 应收余额
					oYsd.FZR	= null;			//11 负责人
					oYsd.ZDR	= userid;		//12 制单人
					oYsd.SHR	= null;			//13 审核人	
					oYsd.ZTBJ	= "1";			//14 状态标记	1:待核销2:可核销3:已核销  //写完细目表后改为2。						
					oYsd.QCBJ	= "0";			//15 期初标记	0:否1:是
					oYsd.BZ		= "由调拨单生成的应收单";			//16 备注	
					oYsd.CJR	= userid;		//17 创建人
					oYsd.CJRQ	= DateTime.Now; //18 创建日期	
					oYsd.XGR	= userid;		//19 修改人	
					oYsd.XGRQ	= DateTime.Now; //20 修改日期
					oYsd.GZBJ	= "0";			//21 过账标记	0:未过账(否)1:已过账(是)
					//oYsd.YSKSJ	= Convert.ToDateTime("");			//22 应收款时间					
					

					oYsdMgr.AddCW_YSD(cn,oYsd);


					//2222生成应收单细目表
					
					for (int i=0; i<oList.Count; i++)
					{	
						oCrkdXm = (Com.Ascs.Drp_KC.CRKDXM)oList[i];   //取出入库单细目
						
						if(oCrkdXm.SJSL>0)  //处入库的实际数量大于0
						{
							oDBDXm = (DBDXM)oDBDXmMgr.GetDBDXM(oCrkd.YSDJBH,oCrkdXm.CPDM,oCrkdXm.ZLZK); //取调拨单细目							
							
							fYsje    = oCrkdXm.SJSL * oDBDXm.CPJG;	//应收金额 = 实际数量*产品价格
							fTotalJE = fTotalJE + fYsje;

							oYsdXm.YSDH  = oYsd.YSDH;					//1	应收单号
							oYsdXm.XH    =	GetYsdxmXH(cn,oYsd.YSDH);   //2	序号	
							oYsdXm.CPDM  = oCrkdXm.CPDM;				//3	产品代码
							oYsdXm.ZLZK  = oCrkdXm.ZLZK;				//4	质量状况	
							oYsdXm.DJ    = oDBDXm.CPJG;					//5	单价
							oYsdXm.SL    = oCrkdXm.SJSL;				//6	数量
							oYsdXm.YSJE  = fYsje;						//7	应收金额
							oYsdXm.YSYE  = fYsje;						//8	应收余额
							oYsdXm.HXZT  = "1";							//9	核销状态	1:可核销2:已核销
							
							oYsdXmMgr.AddCW_YSDXM(cn,oYsdXm);  

						}
					}
				
					//3333修改主表的金额

					oYsd.YSJE   = fTotalJE;		//8	应收金额	
					oYsd.SJYSJE = fTotalJE;		//9	实际应收金额	
					oYsd.YSYE   = fTotalJE;		//10 应收余额	
					oYsd.ZTBJ   = "2" ;	    	//14 状态标记	ZTBJ	nvarchar(1)	N	1:待核销2:可核销3:已核销  //写完细目表后改为2。		
					

					oYsdMgr.UpdateCW_YSD(cn,oYsd);

					#endregion
				}
				else if(oCrkd.YSDJBH.IndexOf("DD")!=-1)   //销售定单生成应收单
				{
					#region 

					com.ascs.plp.xs.XSDD oXsdd           = new com.ascs.plp.xs.XSDD();			//销售定单对象
					com.ascs.plp.xs.XSDDMgr oXsddMgr     = new com.ascs.plp.xs.XSDDMgr();		//销售定单对象管理类
					com.ascs.plp.xs.XSDDXM oXsddXm       = new com.ascs.plp.xs.XSDDXM();		//销售定单细目对象
					com.ascs.plp.xs.XSDDXMMgr oXsddXmMgr = new com.ascs.plp.xs.XSDDXMMgr();		//销售定单细目对象管理类
					
					oXsdd = (XSDD)oXsddMgr.GetXSDD(oCrkd.YSDJBH);

					//11111生成应收单主表
					
					oYsd.YSDH	=autonumber.dmtwo("YR",jgdm);			//1应收单号
					oYsd.JGDM	= jgdm;			//2 机构代码				
					oYsd.WLHLX	= "1";			//3 往来户类型 	1:客户2:供应商3:机构4:人员
					oYsd.WLHBH	= oXsdd.KHDM;		//4 往来户编号    客户代码
					oYsd.YSDJH	= oCrkd.CRKDH;	//5 原始单据号				
					oYsd.DJLX	= 1;			//6 单据类型  “1销售应收”
					oYsd.HBLX	= "0901";		//7	货币类型	
					oYsd.YSJE	= 0;			//8 应收金额
					oYsd.SJYSJE = 0;			//9 实际应收金额
					oYsd.YSYE	= 0;			//10 应收余额
					oYsd.FZR	= null;			//11 负责人
					oYsd.ZDR	= userid;		//12 制单人
					oYsd.SHR	= null;			//13 审核人	
					oYsd.ZTBJ	= "1";			//14 状态标记	1:待核销2:可核销3:已核销  //写完细目表后改为2。						
					oYsd.QCBJ	= "0";			//15 期初标记	0:否1:是
					oYsd.BZ		= "";			//16 备注	
					oYsd.CJR	= userid;		//17 创建人
					oYsd.CJRQ	= DateTime.Now; //18 创建日期	
					oYsd.XGR	= userid;		//19 修改人	
					oYsd.XGRQ	= DateTime.Now; //20 修改日期
					oYsd.GZBJ	= "0";			//21 过账标记	0:未过账(否)1:已过账(是)
					//oYsd.YSKSJ	= "";			//22 应收款时间
					
					oYsdMgr.AddCW_YSD(cn,oYsd);

					//2222生成应收单细目表

					for (int i=0; i<oList.Count; i++)
					{					
						oCrkdXm = (Com.Ascs.Drp_KC.CRKDXM)oList[i];   //取出入库单细目
						
						if(oCrkdXm.SJSL>0)  //处入库的实际数量大于0
						{
							oXsddXm = (XSDDXM)oXsddXmMgr.GetXSDDXM(oCrkd.YSDJBH,oCrkdXm.CPDM,oCrkdXm.ZLZK); //取销售定单细目
						
							fYsje    = oCrkdXm.SJSL * oXsddXm.XSDJ;	//应收金额 = 实际数量*产品价格
							fTotalJE = fTotalJE + fYsje;

							oYsdXm.YSDH  = oYsd.YSDH;					//1	应收单号
							oYsdXm.XH    =	GetYsdxmXH(cn,oYsd.YSDH);   //2	序号	
							oYsdXm.CPDM  = oCrkdXm.CPDM;				//3	产品代码
							oYsdXm.ZLZK  = oCrkdXm.ZLZK;				//4	质量状况	
							oYsdXm.DJ    = oXsddXm.XSDJ;					//5	单价
							oYsdXm.SL    = oCrkdXm.SJSL;				//6	数量
							oYsdXm.YSJE  = fYsje;						//7	应收金额
							oYsdXm.YSYE  = fYsje;						//8	应收余额
							oYsdXm.HXZT  = "1";							//9	核销状态	1:可核销2:已核销
							
							oYsdXmMgr.AddCW_YSDXM(cn,oYsdXm);  
						}
					}
				
					//3333修改主表的金额

					oYsd.YSJE   = fTotalJE;		//8	应收金额	
					oYsd.SJYSJE = fTotalJE;		//9	实际应收金额	
					oYsd.YSYE   = fTotalJE-oXsdd.YFJE;		//10 应收余额	
					oYsd.ZTBJ   = "2" ;	    	//14 状态标记	ZTBJ	nvarchar(1)	N	1:待核销2:可核销3:已核销  //写完细目表后改为2。		
		
					oYsdMgr.UpdateCW_YSD(cn,oYsd);
					#endregion
				}
			else if(oCrkd.YSDJBH.IndexOf("CT")!=-1)   //采购退货单生成应收单
				{
					#region 
					com.ascs.plp.cg.CGTHD oCgthd	  = new com.ascs.plp.cg.CGTHD();	 //采购退货单对象
					com.ascs.plp.cg.CGTHDXM oCgthdXm  = new com.ascs.plp.cg.CGTHDXM();	 //采购退货单细目对象
					com.ascs.plp.cg.BackGood oCgthMgr = new com.ascs.plp.cg.BackGood();  //采购退货管理类
					
					oCgthd = (CGTHD)oCgthMgr.GetCGTHD(oCrkd.YSDJBH);

					//11111生成应收单主表
					
					oYsd.YSDH	= autonumber.dmtwo("YR",jgdm);			//1应收单号
					oYsd.JGDM	= jgdm;			//2 机构代码				
					oYsd.WLHLX	= "1";			//3 往来户类型 	1:客户2:供应商3:机构4:人员
					oYsd.WLHBH	= oCgthd.SHFMC;		//4 往来户编号    
					oYsd.YSDJH	= oCrkd.CRKDH;	//5 原始单据号				
					oYsd.DJLX	= 2;			//6 单据类型  “采购退货应收
					oYsd.HBLX	= "0901";		//7	货币类型	
					oYsd.YSJE	= 0;			//8 应收金额
					oYsd.SJYSJE = 0;			//9 实际应收金额
					oYsd.YSYE	= 0;			//10 应收余额
					oYsd.FZR	= null;			//11 负责人
					oYsd.ZDR	= userid;		//12 制单人
					oYsd.SHR	= null;			//13 审核人	
					oYsd.ZTBJ	= "1";			//14 状态标记	1:待核销2:可核销3:已核销  //写完细目表后改为2。						
					oYsd.QCBJ	= "0";			//15 期初标记	0:否1:是
					oYsd.BZ		= "采购退货单生成应收单";			//16 备注	
					oYsd.CJR	= userid;		//17 创建人
					oYsd.CJRQ	= DateTime.Now; //18 创建日期	
					oYsd.XGR	= userid;		//19 修改人	
					oYsd.XGRQ	= DateTime.Now; //20 修改日期
					oYsd.GZBJ	= "0";			//21 过账标记	0:未过账(否)1:已过账(是)
					//oYsd.YSKSJ	= "";			//22 应收款时间
					
					oYsdMgr.AddCW_YSD(cn,oYsd);

					//2222生成应收单细目表

					for (int i=0; i<oList.Count; i++)
					{
						oCrkdXm = (Com.Ascs.Drp_KC.CRKDXM)oList[i];   //取出入库单细目
						
						if(oCrkdXm.SJSL>0)  //处入库的实际数量大于0
						{
							oCgthdXm = (CGTHDXM)oCgthMgr.GetCGTHDXM(oCrkd.YSDJBH,oCrkdXm.CPDM,oCrkdXm.ZLZK); //取销售定单细目
						
							fYsje    = oCrkdXm.SJSL * oCgthdXm.CPJG;	//应收金额 = 实际数量*产品价格
							fTotalJE = fTotalJE + fYsje;

							oYsdXm.YSDH  = oYsd.YSDH;					//1	应收单号
							oYsdXm.XH    =	GetYsdxmXH(cn,oYsd.YSDH);   //2	序号	
							oYsdXm.CPDM  = oCrkdXm.CPDM;				//3	产品代码
							oYsdXm.ZLZK  = oCrkdXm.ZLZK;				//4	质量状况	
							oYsdXm.DJ    = oCgthdXm.CPJG;					//5	单价
							oYsdXm.SL    = oCrkdXm.SJSL;				//6	数量
							oYsdXm.YSJE  = fYsje;						//7	应收金额
							oYsdXm.YSYE  = fYsje;						//8	应收余额
							oYsdXm.HXZT  = "1";							//9	核销状态	1:可核销2:已核销
							
							oYsdXmMgr.AddCW_YSDXM(cn,oYsdXm);  
						}
					}
				
					//3333修改主表的金额

					oYsd.YSJE   = fTotalJE;		//8	应收金额	
					oYsd.SJYSJE = fTotalJE;		//9	实际应收金额	
					oYsd.YSYE   = fTotalJE;		//10 应收余额	
					oYsd.ZTBJ   = "2" ;	    	//14 状态标记	ZTBJ	nvarchar(1)	N	1:待核销2:可核销3:已核销  //写完细目表后改为2。		
		
					oYsdMgr.UpdateCW_YSD(cn,oYsd);
					#endregion
				}


				
			
				return true;
			}
			catch(Exception e)
			{
				LogService.Write ("Com.Ascs.Plp.CW.CW_FyMgr: MakeYSD(SqlConnection cn,string sCrkdh,string jgdm,string userid)");
				LogService.Write (e.Message);
				return false;
			}
		}

		//end
		//begin
		/// <summary>
		///  根据应收单号,取最大序号+1
		/// </summary>
		///<param name="cn">cn</param>
		///<param name="ysdh">应收单号</param>
		///<returns>int XH</returns>
		
		public int GetYsdxmXH(SqlConnection cn,string ysdh)
		{
			int iXh=1;
			try
			{
				string sql;
				sql = "select xh from cw_ysdxm where ysdh=@ysdh order by xh desc ";				
				
				SqlCommand cmd = new SqlCommand(sql,cn);
				cmd.Parameters.Add ("@ysdh", ysdh);
				
				SqlDataReader dr = cmd.ExecuteReader();
				
				if (dr.Read())
				{
					iXh = (int)dr[0];
					iXh = iXh+1;
				}
				dr.Close();
				
				return iXh;
			}
			catch(Exception e)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -