软件使用场景:

假如你是一个小老板,跟多个合伙人管理多家门店,门店之间的员工存在相互支援工作,A门店的员工可能到B门店做业绩,每天就需要统计每个门店收了多少现金,收了多少网银,需要统计每个门店和每个员工的业绩,多个门店数据也需要汇总。月底了需要给员工发工资,需要看到每家门店的经营情况,甚至需要记录员工的迟到、早退、罚款等情况。门店和员工稍微一多,传统的办法统计业绩和计算工资就会很痛苦,需要专门的财务人员,无形之前又增加了人力成本。许多老板就想到了开发一款记账的软件,很多网络公司的记账软件又不能满足个性化需求,有的价格甚至很高,难以接受,高昂的服务器费用更是难以承受,在这种情况下,非常适合夜鹰教程网的记账结算软件商业版。

先来一波界面截图:

记账的时候多个人的账单一次性的post到后端,实现当天数据批量保存。

记账核心前端代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TbAddBill.aspx.cs" Inherits="TbAddBill" %><!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title></title><script src="My97DatePicker/WdatePicker.js" type="text/javascript" charset="utf-8"></script>   <link rel="stylesheet" type="text/css" href="css/comm.css" /><style type="text/css">.formtable {width:calc(100% - 6px);margin:0 auto;border-collapse:collapse;margin-top:10px;}.formtable td {height:30px;line-height:30px;border:solid 1px #333;padding:0 5px;}.formtable td.lable {text-align:right;}.path {border:solid 1px #333;height:35px;line-height:35px;margin:2px;padding-left:2px;position:relative;}.lable {width:235px;text-align:right;}.formtable b{color:red;}table tr:hover{background-color:lightgreen!important;}</style>
</head>
<body data-rolename="<%=BasePage.GetCurrentRoleName()%>"><form id="form1" runat="server"><div class="path">当前位置:记账管理 >> 新增记账 </div><table class="formtable"><tr><td class="lable">门店</td><td><asp:DropDownList ID="ddl_Departments" runat="server"></asp:DropDownList></td></tr>        <tr><td class="lable">记账时间</td><td><asp:TextBox ID="tbBillTime" runat="server" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd'})"  CssClass="Wdate"></asp:TextBox></td></tr></table><table class="formtable" id="personbox"><tr><td class="lable">姓名</td><td>个人业绩</td></tr><asp:Repeater ID="Repeater1" runat="server"><ItemTemplate><tr class="depart-<%#Eval("DepartId")%>" style="background-color:<%#Eval("BgColor")%>;"><td class="lable">[<%#Eval("DepartName")%>]<%#Eval("TrueName")%></td><td><input type="text" value="" data-userid="<%#Eval("ID")%>" data-truename="<%#Eval("TrueName")%>" class="pp1"  name="personmoney"/> &nbsp;<input type="checkbox"  value="1" name="iswork"/>&nbsp;是否上班 </td></tr></ItemTemplate></asp:Repeater></table><table class="formtable"><tr><td class="lable">网银收入</td><td><asp:TextBox ID="tbIncomeBank" runat="server" style="width:200px;" CssClass="initem"></asp:TextBox>  <b>*必填</b></td></tr>        <tr><td class="lable">调货收入网银</td><td><asp:TextBox ID="tbGoodsBank" runat="server" style="width:200px;" CssClass="initem" ></asp:TextBox> <b>*必填</b></td></tr><tr><td class="lable">调货收入现金</td><td><asp:TextBox ID="tbGoodsCash" runat="server" style="width:200px;" CssClass="initem"></asp:TextBox> <b>*必填</b></td></tr><tr><td class="lable">支出网银</td><td><asp:TextBox ID="tbOutBank" runat="server" style="width:200px;" CssClass="initem"></asp:TextBox> <b>*必填</b> 支出原因<asp:TextBox ID="tbReasonBank" runat="server" style="width:300px;"></asp:TextBox></td></tr><tr><td class="lable">支出现金</td><td><asp:TextBox ID="tbOutCash" runat="server" style="width:200px;" CssClass="initem"></asp:TextBox> <b>*必填</b> 支出原因<asp:TextBox ID="tbReasonCash" runat="server" style="width:300px;"></asp:TextBox></td></tr>        <tr><td class="lable">纯毛利</td><td><asp:TextBox ID="tbCunProfits" runat="server" style="width:200px;" Enabled="false"></asp:TextBox> 备注:个人业绩总和</td></tr><tr><td class="lable">成本</td><td><asp:TextBox ID="tbcengben" runat="server" style="width:200px;" CssClass="initem" ></asp:TextBox> <b>*必填</b></td></tr><tr><td class="lable">总业绩</td><td><asp:TextBox ID="tbAllYeJi" runat="server" style="width:200px;" Enabled="false"></asp:TextBox> 备注:个人业绩+成本</td></tr><tr><td class="lable">应收现金</td><td><asp:TextBox ID="tbYingShou" runat="server" style="width:200px;" Enabled="false" ></asp:TextBox> 备注:总业绩-网银收入 </td></tr><tr><td class="lable">差额销账</td><td><asp:TextBox ID="tbCha" runat="server" style="width:200px;" Enabled="false"></asp:TextBox> 备注:实收现金 - 应收现金  <b style="color:red; display:none; ">(如果差额不为0,将显示为红色,差额大于<span id="maxchavaluebox"><asp:Literal ID="ltr_max" runat="server"></asp:Literal> </span>,将不能保存)</b></td></tr>         <tr><td class="lable">实收现金</td><td><asp:TextBox ID="tbShiJi" runat="server" style="width:200px;" CssClass="initem"></asp:TextBox> <b>*必填</b></td></tr>         <tr><td class="lable">实际总业绩</td><td><asp:TextBox ID="tbShiJiAll" runat="server" style="width:200px;" Enabled="false" ></asp:TextBox> 备注:总业绩 - 差额  </td></tr>        <tr><td>&nbsp;</td><td><input type="button" value="保存" id="btnsave" /></td></tr></table><script src="js/jquery-1.11.0.js"></script><script>//计算总业绩function zongyeji() {var sum = 0;//个人业绩+成本var personsum = 0;//个人业绩总和$("#personbox input[name='iswork']:checked").each(function (index,item) {var v = $(item).parent().find("input[name='personmoney']").val();console.log(v);if (v==""||isNaN(v)) {v = 0;}v = parseFloat(v);sum += v;     personsum += v;});$("#tbCunProfits").val(personsum);var chengben = $("#tbcengben").val();console.log("成本"+chengben);if (chengben==""||isNaN(chengben)) {chengben = 0;console.log("===============");}chengben = parseFloat(chengben);               sum += chengben;console.log(sum);$("#tbAllYeJi").val(sum);}//计算应收现金function yingshouxianjin() {var allv = $("#tbAllYeJi").val();var IncomeBankv = $("#tbIncomeBank").val();allv = parseFloat(allv);IncomeBankv = parseFloat(IncomeBankv);var yingshou = allv - IncomeBankv;$("#tbYingShou").val(yingshou);}//计算差额销账function chaxiaozhang() {var shijiv = $("#tbShiJi").val();var YingShouv = $("#tbYingShou").val();shijiv = parseFloat(shijiv);YingShouv = parseFloat(YingShouv);var cha = shijiv - YingShouv;console.log(cha);$("#tbCha").val(cha);shijizongyeji();}//计算实际总业绩function shijizongyeji() {var zongyeji = $("#tbAllYeJi").val();var Cha = $("#tbCha").val();zongyeji = parseFloat(zongyeji);Cha = parseFloat(Cha);var shijizongyeji = zongyeji + Cha;console.log(shijizongyeji);$("#tbShiJiAll").val(shijizongyeji);}$("#personbox input[name='personmoney']").on("input",function () {zongyeji();yingshouxianjin();chaxiaozhang();});$("input[name='iswork']").click(function () {zongyeji();yingshouxianjin();chaxiaozhang();});$(".initem").on("input", function () {zongyeji();yingshouxianjin();chaxiaozhang();});$("#tbIncomeBank").on("input", function () {zongyeji();yingshouxianjin();chaxiaozhang();});$("#tbShiJi").on("input", function () {zongyeji();yingshouxianjin();chaxiaozhang();});$("#btnsave").click(function (e) {var flag = true;//验证是否通过var issavemsg = true;var msg = "";//验证时间必须填写var createtime = $("#tbBillTime").val();if (!(createtime.length > 0)) {msg = "请选择记账时间";$("#tbBillTime").focus();flag = false;issavemsg = false;}//验证个人业绩$(".pp1").each(function (index, item) {if ($(item).parent().find("input[name='iswork']").is(":checked")&& (!($(item).val().length > 0))) {flag = false;if (issavemsg) {msg = "请填写" + $(item).parent().parent().find("td.lable").text()+"的业绩";$(item).focus();issavemsg = false;}}});//验证填写了业绩,必须勾选上班。$("input[name='personmoney']").each(function (indexp, itemp) {if (issavemsg) {if ($(itemp).val().length > 0) {if (!($(itemp).siblings("input[name='iswork']").is(":checked"))) {flag = false;msg = "填写了业绩就必须勾选上班选项!";$(itemp).focus();issavemsg = false;}}}});//验证必填项目$(".initem").each(function (index2,item2) {if(!($(item2).val().length > 0)){flag = false;if (issavemsg) {msg = "请填写" + $(item2).parent().parent().find("td.lable").text();$(item2).focus();issavemsg = false;}}});var chavalue = $("#tbCha").val();var maxchavalue = $("#maxchavaluebox").text();//chavalue = parseFloat(Math.abs(chavalue));chavalue = parseFloat(chavalue);maxchavalue = parseFloat(maxchavalue);if (chavalue<maxchavalue) {if (!($("body").attr("data-rolename") == "超级管理员" || $("body").attr("data-rolename") == "一级店长")) {flag = false;//msg = "差额销账中的差额不能大于" + maxchavalue;msg = "差额销账项不能保存,请联系一级店长!";}                  }if (!flag) {alert(msg);return false;}else {savedata();}});function savedata() {var PersonArrayObjs = []; $("#personbox input[name='iswork']:checked").each(function (index, item) {var v = $(item).parent().find("input[name='personmoney']").val();var truename = $(item).parent().find("input[name='personmoney']").attr("data-truename");var userid = $(item).parent().find("input[name='personmoney']").attr("data-userid");if (v == "" || isNaN(v)) {v = 0;}v = parseFloat(v);var itemobj = {};  itemobj["YeJi"] = v;itemobj["userid"] = userid;    itemobj["truename"] = truename;    PersonArrayObjs.push(itemobj);console.log(itemobj);});var billobj = {};billobj["DepartId"] = $("#ddl_Departments").val();billobj["BillTime"] = $("#tbBillTime").val();billobj["IncomeBank"] = $("#tbIncomeBank").val();billobj["GoodsBank"] = $("#tbGoodsBank").val();billobj["GoodsCash"] = $("#tbGoodsCash").val();billobj["OutBank"] = $("#tbOutBank").val();billobj["OutCash"] = $("#tbOutCash").val();billobj["CunProfits"] = $("#tbCunProfits").val();billobj["BillChengBen"] = $("#tbcengben").val();billobj["AllYeJi"] = $("#tbAllYeJi").val();billobj["IncomeCashYingShou"] = $("#tbYingShou").val();billobj["BillCha"] = $("#tbCha").val();billobj["IncomeCashShiji"] = $("#tbShiJi").val();billobj["OutAll"] = $("#tbShiJiAll").val();billobj["ReasonBank"] = $("#tbReasonBank").val();billobj["ReasonCash"] = $("#tbReasonCash").val();console.log(billobj);//店长保存每天的数据$.ajax({type: "post",url: "Ajax.ashx",data: { w: "savedatabydianzhang", jsondatastr: JSON.stringify(PersonArrayObjs), billobjstr: JSON.stringify(billobj)},timeout:10000,dataType: "json",async:true,//默认设置为true,所有请求均为异步请求cache: false,//默认为true(当dataType为script时,默认为false)设置为false将不会从浏览器缓存中加载请求信息。success: function (data) {console.log(data);alert(data.result);if (data.isrepeat == "0") {location.reload();}}});}</script></form>
</body>
</html>

记账核心代码部分:源码

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;
using System.Text;
namespace YYCMS
{/// <summary>  ///TbBillRecords类 /// </summary>  public class TbBillRecords{public TbBillRecords(){ }#region Model public int ID { set; get; }public string CreateTime { set; get; }public string BillTime { set; get; }public int? UserId { set; get; }public string UserName { set; get; }public int? DepartsId { set; get; }public decimal? IncomeBank { set; get; }public decimal? GoodsBank { set; get; }public decimal? GoodsCash { set; get; }public decimal? OutBank { set; get; }public decimal? OutCash { set; get; }public decimal? CunProfits { set; get; }public decimal? BillChengBen { set; get; }public decimal? AllYeJi { set; get; }public decimal? IncomeCashYingShou { set; get; }public decimal? BillCha { set; get; }public decimal? IncomeCashShiji { set; get; }public decimal? OutAll { set; get; }public string ReasonBank { set; get; }public string ReasonCash { set; get; }#endregion Model #region 方法成员 /// <summary> /// 增加一条数据 /// </summary> public int Add(){StringBuilder strSql = new StringBuilder();strSql.Append("insert into TbBillRecords(");strSql.Append("CreateTime,BillTime,UserId,UserName,DepartsId,IncomeBank,GoodsBank,GoodsCash,OutBank,OutCash,CunProfits,BillChengBen,AllYeJi,IncomeCashYingShou,BillCha,IncomeCashShiji,OutAll,ReasonBank,ReasonCash");strSql.Append(") values (");strSql.Append("@CreateTime,@BillTime,@UserId,@UserName,@DepartsId,@IncomeBank,@GoodsBank,@GoodsCash,@OutBank,@OutCash,@CunProfits,@BillChengBen,@AllYeJi,@IncomeCashYingShou,@BillCha,@IncomeCashShiji,@OutAll,@ReasonBank,@ReasonCash");strSql.Append(")");strSql.Append(";select @@IDENTITY");SqlParameter[] parameters = {new SqlParameter("@CreateTime",SqlDbType.NVarChar,50),new SqlParameter("@BillTime",SqlDbType.NVarChar,50),new SqlParameter("@UserId",SqlDbType.Int),new SqlParameter("@UserName",SqlDbType.NVarChar,50),new SqlParameter("@DepartsId",SqlDbType.Int),new SqlParameter("@IncomeBank",SqlDbType.Decimal),new SqlParameter("@GoodsBank",SqlDbType.Decimal),new SqlParameter("@GoodsCash",SqlDbType.Decimal),new SqlParameter("@OutBank",SqlDbType.Decimal),new SqlParameter("@OutCash",SqlDbType.Decimal),new SqlParameter("@CunProfits",SqlDbType.Decimal),new SqlParameter("@BillChengBen",SqlDbType.Decimal),new SqlParameter("@AllYeJi",SqlDbType.Decimal),new SqlParameter("@IncomeCashYingShou",SqlDbType.Decimal),new SqlParameter("@BillCha",SqlDbType.Decimal),new SqlParameter("@IncomeCashShiji",SqlDbType.Decimal),new SqlParameter("@OutAll",SqlDbType.Decimal),new SqlParameter("@ReasonBank",SqlDbType.NVarChar,50),new SqlParameter("@ReasonCash",SqlDbType.NVarChar,50)};parameters[0].Value = CreateTime;parameters[1].Value = BillTime;parameters[2].Value = UserId;parameters[3].Value = UserName;parameters[4].Value = DepartsId;parameters[5].Value = IncomeBank;parameters[6].Value = GoodsBank;parameters[7].Value = GoodsCash;parameters[8].Value = OutBank;parameters[9].Value = OutCash;parameters[10].Value = CunProfits;parameters[11].Value = BillChengBen;parameters[12].Value = AllYeJi;parameters[13].Value = IncomeCashYingShou;parameters[14].Value = BillCha;parameters[15].Value = IncomeCashShiji;parameters[16].Value = OutAll;parameters[17].Value = ReasonBank;parameters[18].Value = ReasonCash;object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);if (obj == null){return 1;}else{return Convert.ToInt32(obj);}}/// <summary> /// 修改一条数据/// </summary> public int UpdateYeJi(){StringBuilder strSql = new StringBuilder();strSql.Append("update TbBillRecords set ");          strSql.Append("IncomeBank=@IncomeBank,");strSql.Append("GoodsBank=@GoodsBank,");strSql.Append("GoodsCash=@GoodsCash,");strSql.Append("OutBank=@OutBank,");strSql.Append("OutCash=@OutCash,");strSql.Append("CunProfits=@CunProfits,");strSql.Append("BillChengBen=@BillChengBen,");strSql.Append("AllYeJi=@AllYeJi,");strSql.Append("IncomeCashYingShou=@IncomeCashYingShou,");strSql.Append("BillCha=@BillCha,");strSql.Append("IncomeCashShiji=@IncomeCashShiji,");strSql.Append("BillTime=@BillTime,");strSql.Append("OutAll=@OutAll,");strSql.Append("ReasonBank=@ReasonBank,");strSql.Append("ReasonCash=@ReasonCash");strSql.Append(" where ID=@Id");SqlParameter[] parameters = {new SqlParameter("@ID",SqlDbType.Int),new SqlParameter("@IncomeBank",SqlDbType.Decimal),new SqlParameter("@GoodsBank",SqlDbType.Decimal),new SqlParameter("@GoodsCash",SqlDbType.Decimal),new SqlParameter("@OutBank",SqlDbType.Decimal),new SqlParameter("@OutCash",SqlDbType.Decimal),new SqlParameter("@CunProfits",SqlDbType.Decimal),new SqlParameter("@BillChengBen",SqlDbType.Decimal),new SqlParameter("@AllYeJi",SqlDbType.Decimal),new SqlParameter("@IncomeCashYingShou",SqlDbType.Decimal),new SqlParameter("@BillCha",SqlDbType.Decimal),new SqlParameter("@IncomeCashShiji",SqlDbType.Decimal),new SqlParameter("@BillTime",SqlDbType.NVarChar),new SqlParameter("@OutAll",SqlDbType.Decimal),new SqlParameter("@ReasonBank",SqlDbType.NVarChar,50),new SqlParameter("@ReasonCash",SqlDbType.NVarChar,50)};parameters[0].Value = ID;parameters[1].Value = IncomeBank;parameters[2].Value = GoodsBank;parameters[3].Value = GoodsCash;parameters[4].Value = OutBank;parameters[5].Value = OutCash;parameters[6].Value = CunProfits;parameters[7].Value = BillChengBen;parameters[8].Value = AllYeJi;parameters[9].Value = IncomeCashYingShou;parameters[10].Value = BillCha;parameters[11].Value = IncomeCashShiji;parameters[12].Value = BillTime;parameters[13].Value = OutAll;parameters[14].Value = ReasonBank;parameters[15].Value = ReasonCash;return DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);}/// <summary> /// 修改一条数据/// </summary> public int Update(){StringBuilder strSql = new StringBuilder();strSql.Append("update TbBillRecords set ");strSql.Append("CreateTime=@CreateTime,");strSql.Append("BillTime=@BillTime,");strSql.Append("UserId=@UserId,");strSql.Append("UserName=@UserName,");strSql.Append("DepartsId=@DepartsId,");strSql.Append("IncomeBank=@IncomeBank,");strSql.Append("GoodsBank=@GoodsBank,");strSql.Append("GoodsCash=@GoodsCash,");strSql.Append("OutBank=@OutBank,");strSql.Append("OutCash=@OutCash,");strSql.Append("CunProfits=@CunProfits,");strSql.Append("BillChengBen=@BillChengBen,");strSql.Append("AllYeJi=@AllYeJi,");strSql.Append("IncomeCashYingShou=@IncomeCashYingShou,");strSql.Append("BillCha=@BillCha,");strSql.Append("IncomeCashShiji=@IncomeCashShiji,");strSql.Append("OutAll=@OutAll,");strSql.Append("ReasonBank=@ReasonBank,");strSql.Append("ReasonCash=@ReasonCash");strSql.Append(" where ID=@Id");SqlParameter[] parameters = {new SqlParameter("@ID",SqlDbType.Int),new SqlParameter("@CreateTime",SqlDbType.NVarChar,50),new SqlParameter("@BillTime",SqlDbType.NVarChar,50),new SqlParameter("@UserId",SqlDbType.Int),new SqlParameter("@UserName",SqlDbType.NVarChar,50),new SqlParameter("@DepartsId",SqlDbType.Int),new SqlParameter("@IncomeBank",SqlDbType.Decimal),new SqlParameter("@GoodsBank",SqlDbType.Decimal),new SqlParameter("@GoodsCash",SqlDbType.Decimal),new SqlParameter("@OutBank",SqlDbType.Decimal),new SqlParameter("@OutCash",SqlDbType.Decimal),new SqlParameter("@CunProfits",SqlDbType.Decimal),new SqlParameter("@BillChengBen",SqlDbType.Decimal),new SqlParameter("@AllYeJi",SqlDbType.Decimal),new SqlParameter("@IncomeCashYingShou",SqlDbType.Decimal),new SqlParameter("@BillCha",SqlDbType.Decimal),new SqlParameter("@IncomeCashShiji",SqlDbType.Decimal),new SqlParameter("@OutAll",SqlDbType.Decimal),new SqlParameter("@ReasonBank",SqlDbType.NVarChar,50),new SqlParameter("@ReasonCash",SqlDbType.NVarChar,50)};parameters[0].Value = ID;parameters[1].Value = CreateTime;parameters[2].Value = BillTime;parameters[3].Value = UserId;parameters[4].Value = UserName;parameters[5].Value = DepartsId;parameters[6].Value = IncomeBank;parameters[7].Value = GoodsBank;parameters[8].Value = GoodsCash;parameters[9].Value = OutBank;parameters[10].Value = OutCash;parameters[11].Value = CunProfits;parameters[12].Value = BillChengBen;parameters[13].Value = AllYeJi;parameters[14].Value = IncomeCashYingShou;parameters[15].Value = BillCha;parameters[16].Value = IncomeCashShiji;parameters[17].Value = OutAll;parameters[18].Value = ReasonBank;parameters[19].Value = ReasonCash;return DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);}/// <summary> /// 删除一条数据 /// </summary> public int delete(){StringBuilder strSql = new StringBuilder();strSql.Append("delete from TbBillRecords ");strSql.Append(" where ID=@ID ");SqlParameter[] parameters = {
new SqlParameter("@ID", SqlDbType.Int,4)
};parameters[0].Value = ID;return DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);}/// <summary> /// 获取数据列表 /// </summary> public DataSet GetList(string strWhere){StringBuilder strSql = new StringBuilder();strSql.Append(" select * from TbBillRecords ");if (strWhere.Trim() != ""){strSql.Append(" where " + strWhere);}return DbHelperSQL.Query(strSql.ToString());}/// <summary> /// 分页查询 /// </summary> /// <param name="PageIndex">当前第几页</param> /// <param name="PageSize">每页条数</param> /// <param name="strWhere">条件</param> /// <param name="Recordcount">记录总条数</param> /// <returns></returns> public DataSet Pager(int PageIndex, int PageSize, string strWhere, out int Recordcount){string strSql = string.Empty;if (string.IsNullOrEmpty(strWhere)){strWhere = " 1=1 ";}strSql = string.Format("select top {0} * from V_TbBillRecords where id not in (select top {1} id from V_TbBillRecords where {2} order by BillTime desc) and ({2}) order by BillTime desc", PageSize, PageSize * (PageIndex - 1), strWhere);DataSet ds = DbHelperSQL.Query(strSql);string strSql2 = string.Format("select id from V_TbBillRecords where {0}", strWhere);DataSet dsCount = DbHelperSQL.Query(strSql2);try{Recordcount = dsCount.Tables[0].Rows.Count;}catch{Recordcount = 0;}return DbHelperSQL.Query(strSql.ToString());}/// <summary> /// 批量删除数据 /// </summary> public int BatchDelete(string _idstr){StringBuilder strSql = new StringBuilder();strSql.Append(" delete from TbBillRecords ");strSql.Append(string.Format(" where ID in ({0}) ", _idstr));return DbHelperSQL.ExecuteSql(strSql.ToString());}#endregion 方法成员}
}

开有多个门店的小老板如何记账和给员工发工资?相关推荐

  1. 排队五小时才能吃上一口的Popeyes,要借阿里云数据中台10年内开足1500家门店

    几个月前,还没多少国人了解美国炸鸡品牌Popeyes,但现在,Popeyes却成为上海滩最火爆的网红店:5月在上海市淮海中路开出首家门店当天,早上7点半,第一条队伍就已排出了半条街. 面对良好的开局, ...

  2. 企业微信开发文档接口API获取accesstoken和读取成员内部员工

    企业微信开发文档接口API获取accesstoken和读取成员内部员工 <?php /*** 企业微信 API*/ namespace app\common;use think\Config; ...

  3. 为什么企业宁愿开高工资给新员工,都不愿意给老员工加工资?

    有朋友问到: 为什么企业宁愿开高工资给新员工,都不愿意给老员工加工资? 俺的建议: 先从这位被低薪压制的老员工角度说说: 决定你的薪资水平的根本原因是你的实力,而影响因素是你的性格.为什么说是你的性格 ...

  4. 发朋友圈“真羡慕人家按时发工资”,然后被开除了?合理吗?

    "打工人"都知道,业绩不达标.恶性迟到早退.不遵守规章制度等都有被开除的情况.但有人却因为发了一个朋友圈被开除了.近日,#女子发朋友圈羡慕工资按时发被开除#的话题引发网友们的热议. ...

  5. 零售企业如何快速开上千家门店,揭秘名创优品的低价超级产品战略

    在宁波的一家工厂内,一边生产着知名品牌香奈儿化妆品配件,另一边则生产着名创优品的眉笔.这是同一家工厂的产品,然而价格却相差十几倍.正是这款售价10元的名创优品眉笔在推向市场第一天就售出了10万件. 随 ...

  6. 星巴克中国已开4家手语门店,分别位于广州、北京、杭州与上海

    星巴克中国又一家手语店亮相上海黄浦绿地缤纷城,这是星巴克在上海的首家手语门店."因为被星巴克的品牌文化深深吸引,我选择加入星巴克大家庭.与伙伴们融洽的相处,让我更有自信地展现自我.更令我感动 ...

  7. bigdecimal计算开n次方_“家的N次方”张家口华耐家居员工年会盛典圆满落幕

    光阴荏苒,岁月如梭. 2020年1月9日,张家口华耐家居年度盛会在张家口威尼斯大酒店举行,华耐家居四店.销售体系.房开体系的全体员工欢聚一堂,共同度过"家的N次方"主题年度盛会. ...

  8. 程序员为什么不单干、接私活、自己开公司

    此篇文章来源于知友的提问「为什么程序员不单干,自己写程序卖啊啥的--而要去公司上班领死工资?」这对于在校的和刚工作不久的程序员来说是一个非常好的问题,甚至我相信不少人自己也想过.毫无例外,我在学生时代 ...

  9. 程序员为什么不自己单干?

    点击上方"程序员小灰",选择"置顶公众号" 有趣有内涵的文章第一时间送达! 本文转载自公众号  一个程序员的日常 此篇文章来源于知友的提问「为什么程序员不单干, ...

最新文章

  1. 学术期刊因投稿者并非双一流高校作者而拒稿引热议!这算学历歧视吗?
  2. pd.dataframe.append
  3. 复制本地文件完整路径
  4. 解除分配UNASSIGN
  5. javascript:面向对象的程序设计
  6. Gin新建一个项目的流程与函数
  7. 信息学奥赛一本通(C++)在线评测系统——基础(三)数据结构 —— 1363:小球(drop)
  8. D3.js、echar.js 前端必备大数据技能
  9. js提交出现post错误_阿里云的 Node.js 稳定性实践
  10. Exchange 日志/存储路径
  11. php能开发管理系统吗,PHP《个人管理系统》希望大家一起来开发
  12. C++中实现类似php的UTF8和UrlEncode函数的代码
  13. android遥控器用什么测试,Android编程调用红外线遥控功能示例
  14. Swift 编程语言
  15. cstring 的GetBuffer() 和 ReleaseBuffer()
  16. python 更新pip镜像源
  17. 网络编程(含 UrlConnection 发送 HTTP 请求下载文件)
  18. ExtJS 快速反入门指南
  19. java实例成员和类成员变量_Java 中成员变量又分为 和类成员变量。_学小易找答案...
  20. android html 布局设计工具,教你使用Android SDK布局优化工具layoutopt

热门文章

  1. 电脑文件夹怎么同步到手机?
  2. 显卡服务器的普遍应用
  3. 2020-10-22从np.random.normal()到正态分布的拟合
  4. 电子邮件全自动加密和数字签名解决方案
  5. GIS常用符号化色带(超级色带)根据python制作
  6. vb 获取计算机序列号,VB获得硬盘序列号的方法
  7. 关于自动装箱的这几道面试题,你都能答对吗?
  8. sublime3激活方式
  9. BeagleBoard XM 开发板入手
  10. cpu对寄存器的访问速度最快