diff --git a/web/controllers/contracttab_controller.go b/web/controllers/contracttab_controller.go index bc74768..e1b4431 100644 --- a/web/controllers/contracttab_controller.go +++ b/web/controllers/contracttab_controller.go @@ -34,6 +34,11 @@ func InsertContracttab(ctx iris.Context) { supports.Error(ctx, iris.StatusBadRequest, "json解析错误", nil) return } + var err error + _, err = utils.TimeParseyyyyMMdd(data.Chargetime) + if err != nil { + data.Chargetime = utils.TimeFormat(time.Now(), "yyyy-MM-dd") + } me := new(models.Contracttab) me = &data.Contracttab me.Chargableexpense = data.Contracttab.Chargedexpense @@ -71,12 +76,11 @@ func InsertContracttab(ctx iris.Context) { me.Linkman = data.Contact me.Begdate = data.Begindate me.Lengthdate = utils.ValueToInt(fmt.Sprintf("%0.0f", lengthdate), 0) - me.Chargetime = utils.TimeFormat(time.Now(), "yyyy-MM-dd") + me.Chargetime = data.Chargetime me.Createtime = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss") if utils.ValueIsEmpty(me.Createby) { me.Createby = user.Name } - var err error if utils.ValueIsEmpty(me.Contractid) { err = me.Add(data, lengthdate) } else { @@ -131,7 +135,7 @@ func UpdateContracttab(ctx iris.Context) { } me.Lengthdate = utils.ValueToInt(fmt.Sprintf("%0.0f", lengthdate), 0) - me.Chargetime = utils.TimeFormat(time.Now(), "yyyy-MM-dd") + me.Chargetime = data.Chargetime me.Createtime = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss") if utils.ValueIsEmpty(me.Createby) { me.Createby = user.Name diff --git a/web/models/contracttab.go b/web/models/contracttab.go index 1726f9a..782b33c 100644 --- a/web/models/contracttab.go +++ b/web/models/contracttab.go @@ -122,7 +122,7 @@ func (t *Contracttab) Add(me *ContractInfo, lengthdate float64) error { charge.Lastmodifytime = t.Createtime charge.Chargableexpense = t.Chargableexpense charge.Chargedexpense = t.Chargedexpense - charge.Chargetime = t.Chargetime + charge.Chargetime = me.Chargetime charge.Chargeby = t.Createby charge.Chargeway = t.Chargeway charge.Serialnumber = serialnumber @@ -170,7 +170,7 @@ func (t *Contracttab) Add(me *ContractInfo, lengthdate float64) error { charge.Chargableexpense = t.Chargableexpense charge.Chargedexpense = t.Chargedexpense charge.Chargeby = t.Createby - charge.Chargetime = t.Chargetime + charge.Chargetime = me.Chargetime charge.Chargeway = t.Chargeway charge.Serialnumber = serialnumber charge.Chargenr = utils.ValueToInt(cnr, 0) @@ -216,7 +216,7 @@ func (t *Contracttab) Add(me *ContractInfo, lengthdate float64) error { charge.Chargableexpense = t.Chargableexpense charge.Chargedexpense = t.Chargedexpense charge.Chargeby = t.Createby - charge.Chargetime = t.Chargetime + charge.Chargetime = me.Chargetime charge.Chargeway = t.Chargeway charge.Serialnumber = serialnumber charge.Chargenr = utils.ValueToInt(cnr, 0) @@ -274,16 +274,25 @@ func (t *Contracttab) Update(me *ContractInfo, lengthdate float64) error { //t.Enddate = utils.TimeFormat(endTime, "yyyy-MM-dd") if utils.ValueIsEmpty(t.Begdate) { - t.Begdate = utils.TimeFormat(time.Now(), "yyyy-MM-dd") + begtime, _ := utils.TimeParseyyyyMMdd(t.Enddate) + + Begdate := begtime.AddDate(0, 0, 1) + t.Begdate = utils.TimeFormat(Begdate, "yyyy-MM-dd") //根据缴费金额计算出截止日期 addlenght := fmt.Sprintf("%0.1f", lengthdate) addmonths := strings.Split(addlenght, ".") adddays := utils.ValueToInt(addmonths[1], 0)*3 - 1 - endTime := time.Now().AddDate(0, utils.ValueToInt(addmonths[0], 0), adddays) + endTime := Begdate.AddDate(0, utils.ValueToInt(addmonths[0], 0), adddays) t.Enddate = utils.TimeFormat(endTime, "yyyy-MM-dd") } else { begtime, _ := utils.TimeParseyyyyMMdd(t.Begdate) //根据缴费金额计算出截止日期 + databaseBegtime, _ := utils.TimeParseyyyyMMdd(t.Enddate) + databaseBegtime = databaseBegtime.AddDate(0, 0, 1) + if begtime.Before(databaseBegtime) { + begtime = databaseBegtime + } + t.Begdate = utils.TimeFormat(begtime, "yyyy-MM-dd") addlenght := fmt.Sprintf("%0.1f", lengthdate) addmonths := strings.Split(addlenght, ".") adddays := utils.ValueToInt(addmonths[1], 0)*3 - 1 @@ -318,7 +327,7 @@ func (t *Contracttab) Update(me *ContractInfo, lengthdate float64) error { charge.Chargableexpense = t.Chargableexpense charge.Chargedexpense = t.Chargedexpense charge.Chargeby = t.Createby - charge.Chargetime = t.Chargetime + charge.Chargetime = me.Chargetime charge.Chargeway = t.Chargeway charge.Serialnumber = serialnumber charge.Chargenr = utils.ValueToInt(cnr, 0) @@ -358,7 +367,7 @@ func (t *Contracttab) Update(me *ContractInfo, lengthdate float64) error { charge.Chargableexpense = t.Chargableexpense charge.Chargedexpense = t.Chargedexpense charge.Chargeby = t.Createby - charge.Chargetime = t.Chargetime + charge.Chargetime = me.Chargetime charge.Chargeway = t.Chargeway charge.Serialnumber = serialnumber charge.Chargenr = utils.ValueToInt(cnr, 0) @@ -398,7 +407,7 @@ func (t *Contracttab) Update(me *ContractInfo, lengthdate float64) error { charge.Chargableexpense = t.Chargableexpense charge.Chargedexpense = t.Chargedexpense charge.Chargeby = t.Createby - charge.Chargetime = t.Chargetime + charge.Chargetime = me.Chargetime charge.Chargeway = t.Chargeway charge.Serialnumber = serialnumber charge.Chargenr = utils.ValueToInt(cnr, 0)