using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CoreFS.CA06;using Pur.Entity;
using Pur.Entity.balanceEntity;
using Core.Mes.Client.Comm.Control;
using System.Collections;
using Pur.Entity.configureEntity;
using Core.Mes.Client.Comm.Tool;
using com.hnshituo.pur.vo;
using Infragistics.Win;
namespace Pur.balance
{
public partial class FrmPop_BalanceRegM : FrmPmsBase
{
public FrmPop_BalanceRegM(ArrayList al_BalanceId, OpeBase ob)
{
InitializeComponent();
GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0], "Check");
this.ob = ob;
getBalanceM(al_BalanceId);// 获取结算单信息
}
///
/// 获取结算单信息
///
private void getBalanceM(ArrayList al)
{
DataTable dt = this.execute("com.hnshituo.pur.balance.service.BalanceBillMService", "getBalanceMToBalanceRegM", new object[] { al });
//按创建时间降序
dt.DefaultView.Sort = "CREATETIME DESC";
dt = dt.DefaultView.ToTable();
GridHelper.CopyDataToDatatable(ref dt, ref dataTable1, true);//结算信息
}
///
/// 获取含税总金额
///
private void getBalanceAmtTax()
{
double summer = 0;//含税总金额
for (int i = 0; i < ultraGrid1.Rows.Count; i++)
{
if ((Boolean)ultraGrid1.Rows[i].Cells["Check"].Value)
{
if (ultraGrid1.Rows[i].Cells["TOTALWITHAMTTAX"].Value.ToString().Trim() != "")
{
double d = 0;
double.TryParse(ultraGrid1.Rows[i].Cells["TOTALWITHAMTTAX"].Value.ToString(), out d);
summer += d;
}
}
}
txt_BALANCE_AMT_TAX.Text = summer.ToString();//含税总金额
}
///
/// 新增报销登记单
///
private void addBalanceRegM()
{
if (txt_INVOICE_CODE.Text.Trim() == "")
{
MessageUtil.ShowTips("请填写发票号");
return;
}
PurBalanceRegMEntity pbrmEntity = new PurBalanceRegMEntity();
//报销单主表
pbrmEntity.RegmId = Guid.NewGuid().ToString();//-
pbrmEntity.Status = "1";//状态
pbrmEntity.InvoiceCode = txt_INVOICE_CODE.Text;//发票编号
pbrmEntity.InvoiceAmt = double.Parse(txt_BALANCE_AMT_TAX.Text);//发票总金额
pbrmEntity.InvoiceDate = System.DateTime.Now;//发票开票日期-
if (txt_BALANCE_AMT_TAX.Text != "")
{
pbrmEntity.RegAmt = double.Parse(txt_BALANCE_AMT_TAX.Text);//申报总金额
}
else
{
pbrmEntity.RegAmt = 0;
}
pbrmEntity.RegAmtUpCase = smallLettersTocapitalLetters(txt_BALANCE_AMT_TAX.Text);//申报总金额大写
pbrmEntity.ConfirmUserid = UserInfo.GetUserID();
pbrmEntity.ConfirmUsername = UserInfo.GetUserName();
pbrmEntity.ConfirmDate = System.DateTime.Now;//票据确认日期-
pbrmEntity.Validflag = "1";
pbrmEntity.SuppCode = ultraGrid1.ActiveRow.Cells["SUPPCODE"].Value.ToString();
pbrmEntity.SuppName = ultraGrid1.ActiveRow.Cells["SUPPNAME"].Value.ToString();
pbrmEntity.CreateUserid = UserInfo.GetUserID();
pbrmEntity.CreateName = UserInfo.GetUserName();
//报销单行
ArrayList albrc = new ArrayList();
for (int i = 0; i < ultraGrid1.Rows.Count; i++)
{
if ((Boolean)ultraGrid1.Rows[i].Cells["Check"].Value)
{
PurBalanceRegCEntity pbrCEntity = new PurBalanceRegCEntity();
pbrCEntity.Id = Guid.NewGuid().ToString();
pbrCEntity.BalanceId = ultraGrid1.Rows[i].Cells["BALANCEID"].Value.ToString();//结算单号
pbrCEntity.Validflag = "1";
pbrCEntity.CreateUserid = UserInfo.GetUserID();
pbrCEntity.CreateName = UserInfo.GetUserName();
albrc.Add(pbrCEntity);
}
}
if (albrc.Count < 1)
{
MessageUtil.ShowTips("请选择结算单");
return;
}
CoreResult crt = this.execute("com.hnshituo.pur.balance.service.BalanceRegMService", "addBalanceRegM", new object[] { pbrmEntity, albrc });
if (crt.Resultcode != 0)
{
MessageUtil.ShowTips("报销单生成失败 " + crt.Resultmsg);
return;
}
MessageUtil.ShowTips("报销单(" + crt.Resultmsg+ ")生成成功!");
}
///
/// 选择结算单
///
///
///
private void ultraGrid1_AfterCellUpdate(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
{
if (e.Cell.Column.Key == "Check")
{
getBalanceAmtTax();
}
}
private void ultraGrid1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
{
ultraGrid1.UpdateData();
}
///
/// 按钮控件
///
///
///
private void barsManagerButon_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
{
switch (e.Tool.Key.ToString())
{
case "Query":
{
}
break;
case "conFirmation":
{
addBalanceRegM();
}
break;
case "ESC":
{
this.Close();
}
break;
}
}
//小写转换为大写
private string smallLettersTocapitalLetters(string strSmallLetter)
{
string strCapitalLetters = "";//保存转化结果
string[] strCapital = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };//大写汉字
string[] strUionIntger = { "十", "百", "千", "万", "十", "百", "千", "亿", "十", "百", "千", "万", "十", "百", "千"};//大写单位
string[] strUionfloat = { "角", "分", "厘", "毫" };
char[] c_IntgerSmallLetter = null;//传入数字整数部分
char[] c_floatSmallLetter = null;//传入数字小数部分
//获取整数部分和小数部分
if (strSmallLetter.IndexOf('.') != -1)
{
c_IntgerSmallLetter = strSmallLetter.Substring(0, strSmallLetter.IndexOf('.')).ToCharArray();
c_floatSmallLetter = strSmallLetter.Substring(strSmallLetter.IndexOf('.') + 1).ToCharArray();
}
else
{
c_IntgerSmallLetter = strSmallLetter.ToCharArray();
}
//转化整数部分
for (int i = 0; i < c_IntgerSmallLetter.Length; i++)
{
int c = int.Parse(c_IntgerSmallLetter[i].ToString());
if (strCapital[c] != "零")
{
strCapitalLetters += strCapital[c];
if (i != c_IntgerSmallLetter.Length - 1)
{
strCapitalLetters += strUionIntger[c_IntgerSmallLetter.Length - 1 - 1 - i];
}
}
else//如果数字为零
{
strCapitalLetters += "零零";
}
}
strCapitalLetters += "元";//加上单位
//转化小数部分
if (c_floatSmallLetter != null)
{
for (int i = 0; i < c_floatSmallLetter.Length; i++)
{
int c = int.Parse(c_floatSmallLetter[i].ToString());
if (strCapital[c] != "零")
{
strCapitalLetters += strCapital[c];
strCapitalLetters += strUionfloat[i];
}
else//如果数字为零
{
strCapitalLetters += "零零";
}
}
}
//将有两个零的都替换成一个零
while (strCapitalLetters.Contains("零零"))
{
strCapitalLetters = strCapitalLetters.Replace("零零", "零");
}
if (c_IntgerSmallLetter.Length > 1)//如果整数长度大于1,那么最后一位不能为零
{
if (strCapitalLetters.Substring(strCapitalLetters.IndexOf("元") - 1, 1) == "零")
{
strCapitalLetters = strCapitalLetters.Remove(strCapitalLetters.IndexOf("元") - 1, 1);
}
}
if (strCapitalLetters.Substring(strCapitalLetters.Length - 1) == "零")//最后一位不能为零
{
strCapitalLetters = strCapitalLetters.Remove((strCapitalLetters.Length - 1));
}
//转化小数部分
return strCapitalLetters;
}
}
}