Пример #1
0
        private void SaveData()
        {
            string sUserName = Session["User"].ToString();

            oDAL   = new InvoiceDAL();
            oClass = new InvoiceModel();


            oClass.InvoiceNo          = InvoiceNo.Value;
            oClass.InsuranceCompanyID = ddlInsurance.SelectedValue;
            oClass.PatientNo          = ddlPatient.SelectedValue;
            oClass.CaseNo             = CaseNo.Value;
            oClass.InvoiceDate        = Convert.ToDateTime(InvoiceDate.Value);
            oClass.Medex       = Convert.ToDecimal(Medex.Value);
            oClass.CaseFee     = Convert.ToDecimal(CaseFee.Value);
            oClass.TotalBilled = Convert.ToDecimal(TotalBill.Value);
            oClass.DateBilled  = Convert.ToDateTime(BillingDate.Value);
            oClass.DatePaid    = Convert.ToDateTime(PaidDate.Value);
            oClass.StatusID    = ddlStatus.SelectedValue;
            oClass.Remarks     = txtRemarks.InnerText;

            string id = InvoiceID.Value;

            if (id == "")
            {
                oDAL.InsertData(sUserName, oClass);
                //lblMsg.Text = "New Record has been saved";
            }
            else
            {
                oClass.ID = Convert.ToInt16(id);
                oDAL.UpdateData(sUserName, oClass);
                // lblMsg.Text = "Record has been updated";
            }
        }
Пример #2
0
        private void PrintInvoice(String HeadIdno)
        {
            InvoiceDAL obj      = new InvoiceDAL();
            String     CityName = Session["fromcity"] as string;

            dttemp = obj.city(ApplicationFunction.ConnectionString(), CityName);

            String  GRNo = HeadIdno;
            string  CompName = ""; string Add1 = "", Add2 = ""; string PhNo = ""; string City = ""; string State = ""; string PanNo; string TinNo = ""; string FaxNo = "";
            string  GSTIN    = "";
            DataSet CompDetl = SqlHelper.ExecuteDataset(ApplicationFunction.ConnectionString(), CommandType.Text, "select * from tblcompmast A Left JOIN tblCITYMASTER CM On CM.city_idno=A.city_idno Left join tblStateMaster SM ON SM.state_idno=A.state_idno");
            DataSet dsReport = SqlHelper.ExecuteDataset(ApplicationFunction.ConnectionString(), CommandType.Text, "EXEC [spInvGen] @ACTION='PJLBillINVOICE',@Id='" + HeadIdno + "'");

            CompName = Convert.ToString(CompDetl.Tables[0].Rows[0]["Comp_Name"]);
            Add1     = Convert.ToString(CompDetl.Tables[0].Rows[0]["Adress1"]);
            if (dttemp.Rows.Count > 0)
            {
                Add2 = Convert.ToString(dttemp.Rows[0]["Address1"]) + "," + Convert.ToString(dttemp.Rows[0]["Address2"]);
            }
            //PhNo = "Phone No. (O) :" + Convert.ToString(CompDetl.Tables[0].Rows[0]["Phone_Off"] + " " + CompDetl.Tables[0].Rows[0]["Phone_Res"]);
            PhNo        = Convert.ToString(CompDetl.Tables[0].Rows[0]["Phone_Off"] + "," + CompDetl.Tables[0].Rows[0]["Mobile_1"]);
            City        = Convert.ToString(CompDetl.Tables[0].Rows[0]["City_Name"]);
            State       = Convert.ToString(CompDetl.Tables[0].Rows[0]["State_Name"]) + "(CODE :-  " + Convert.ToString(dsReport.Tables[0].Rows[0]["GSTState_Code"]) + ")";
            TinNo       = Convert.ToString(CompDetl.Tables[0].Rows[0]["TIN_NO"]);
            FaxNo       = Convert.ToString(CompDetl.Tables[0].Rows[0]["Fax_No"]);
            PanNo       = Convert.ToString(CompDetl.Tables[0].Rows[0]["Pan_No"]);
            GSTIN       = Convert.ToString(CompDetl.Tables[0].Rows[0]["CompGSTIN_No"]);
            lblpin.Text = Convert.ToString(CompDetl.Tables[0].Rows[0]["Pin_No"]);

            lblCompname.Text = CompName; lblcom.Text = "For - " + CompName;
            lblCompAdd1.Text = Add1;
            lblcity.Text     = City;
            lblstate.Text    = State;
            lblmobile.Text   = PhNo;
            lbgst.Text       = GSTIN;
            lblpan.Text      = PanNo.ToString();

            if (dsReport != null && dsReport.Tables[1].Rows.Count > 0)
            {
                Repeater1.DataSource = dsReport.Tables[1];
                Repeater1.DataBind();
            }
            lblunit.Text     = Convert.ToString(dsReport.Tables[0].Rows[0]["unit"]);
            lblbillno.Text   = Convert.ToString(dsReport.Tables[0].Rows[0]["Inv_No"]);
            lblcontname.Text = Convert.ToString(dsReport.Tables[0].Rows[0]["Party_Name"]);
            lbladd1.Text     = Convert.ToString(dsReport.Tables[0].Rows[0]["Address1"]);
            lblcadd2.Text    = Convert.ToString(dsReport.Tables[0].Rows[0]["Address2"]);
            lbldis.Text      = Convert.ToString(dsReport.Tables[0].Rows[0]["City_Name"]);
            diccode.Text     = Convert.ToString(dsReport.Tables[0].Rows[0]["Pin_Code"]);
            lblst.Text       = Convert.ToString(dsReport.Tables[0].Rows[0]["State_Name"]) + "(CODE :-  " + Convert.ToString(dsReport.Tables[0].Rows[0]["GSTState_Code"]) + ")";
            lblgst.Text      = Convert.ToString(dsReport.Tables[0].Rows[0]["Party_GSTINNo"]);

            double lsttotal = Convert.ToDouble(lbltamount.Text);

            string[] str1        = lsttotal.ToString().Split('.');
            string   numbertoent = NumberToText(Convert.ToInt32(str1[0]));

            lblword.Text = numbertoent;
        }
Пример #3
0
        // string con = ConfigurationManager.ConnectionStrings["TransportMandiConnectionString"].ConnectionString;
        #endregion

        #region Page Load...
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.UrlReferrer == null)
            {
                base.AutoRedirect();
            }
            txtReceiptNo.Attributes.Add("onkeypress", "return allowOnlyNumber(event);");
            txtReceiptDatefrom.Attributes.Add("onkeypress", "return notAllowAnything(event);");
            txtReceiptDateto.Attributes.Add("onkeypress", "return notAllowAnything(event);");
            InvoiceDAL  objInvoiceDAL = new InvoiceDAL();
            tblUserPref obj           = objInvoiceDAL.SelectUserPref();

            hidAdminApp.Value = Convert.ToString(obj.AdminApp_Inv);

            if (Convert.ToBoolean(hidAdminApp.Value) == true)
            {
                if (Convert.ToString(Session["Userclass"]) == "Admin")
                {
                    grdMain.Columns[7].Visible = true;
                }
                else
                {
                    grdMain.Columns[7].Visible = false;
                }
            }
            else
            {
                grdMain.Columns[7].Visible = false;
            }
            if (!Page.IsPostBack)
            {
                if (base.CheckUserRights(intFormId) == false)
                {
                    Response.Redirect("PermissionDenied.aspx");
                }
                if (base.Print == false)
                {
                    imgBtnExcel.Visible = false;
                }
                if (Convert.ToString(Session["Userclass"]) == "Admin")
                {
                    this.BindCity();
                }
                else
                {
                    this.BindCity(Convert.ToInt64(Session["UserIdno"]));
                }
                ddlFromCity.SelectedValue = Convert.ToString(base.UserFromCity);
                this.BindDateRange();
                ddldateRange.SelectedValue = Convert.ToString(base.UserDateRng);
                ddldateRange.SelectedIndex = 0;
                ddldateRange_SelectedIndexChanged(null, null);
                Bind();
                this.CountTotalRecords();
            }
        }
Пример #4
0
        public ResultModel Complete(UserModel user, int fundsInvoiceId)
        {
            ResultModel result = new ResultModel();

            try
            {
                FinanceInvoiceDAL fundsInvoiceDAL = new FinanceInvoiceDAL();
                InvoiceDAL invoiceDAL = new InvoiceDAL();

                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    //获取财务票
                    result = fundsInvoiceDAL.Get(user, fundsInvoiceId);
                    if (result.ResultStatus != 0)
                        return result;

                    FinanceInvoice fundsInvoice = result.ReturnValue as FinanceInvoice;
                    if (fundsInvoice == null || fundsInvoice.FinanceInvoiceId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "财务发票验证失败";
                        return result;
                    }

                    //获取发票
                    result = invoiceDAL.Get(user, fundsInvoice.InvoiceId);
                    if (result.ResultStatus != 0)
                        return result;
                    Operate.Model.Invoice invoice = result.ReturnValue as Operate.Model.Invoice;
                    if (invoice == null || invoice.InvoiceId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "发票获取失败";
                        return result;
                    }

                    //作废发票
                    result = invoiceDAL.Complete(user, invoice);
                    if (result.ResultStatus != 0)
                        return result;

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                result.ResultStatus = -1;
                result.Message = ex.Message;
            }

            return result;
        }
Пример #5
0
        public void SerializeInvoiceBLL()
        {
            try
            {
                InvoiceDAL dalobj = new InvoiceDAL();
                dalobj.SerializeInvoice();
            }
            catch (InvoiceException i)
            { throw i; }

            catch (IOException i)
            { throw i; }
        }
Пример #6
0
        private void Bind()
        {
            InvoiceDAL obj = new InvoiceDAL();
            var        lst = obj.selectSenderName();

            obj = null;
            if (lst.Count > 0)
            {
                ddlSenderName.DataSource     = lst;
                ddlSenderName.DataTextField  = "Acnt_Name";
                ddlSenderName.DataValueField = "Acnt_Idno";
                ddlSenderName.DataBind();
                ddlSenderName.Items.Insert(0, new ListItem("--Select--", "0"));
            }
        }
Пример #7
0
        private void BindCity()
        {
            InvoiceDAL obj = new InvoiceDAL();
            var        lst = obj.SelectCityCombo();

            obj = null;

            if (lst.Count > 0)
            {
                ddlLocation.DataSource     = lst;
                ddlLocation.DataTextField  = "City_Name";
                ddlLocation.DataValueField = "City_Idno";
                ddlLocation.DataBind();
            }
            ddlLocation.Items.Insert(0, new System.Web.UI.WebControls.ListItem("--Select--", "0"));
        }
Пример #8
0
        public bool DeleteInvoiceBLL(int InvoiceNo)
        {
            bool isDeleted = false;

            try
            {
                operationsObj = new InvoiceDAL();
                isDeleted     = operationsObj.DeleteInvoiceDAL(InvoiceNo);
                if (!isDeleted)
                {
                    throw new InvoiceException("Invoice Could not be deleted");
                }
            }
            catch (InvoiceException ex) { throw ex; }
            return(isDeleted);
        }
Пример #9
0
        private void BindCity()
        {
            InvoiceDAL obj = new InvoiceDAL();
            var        lst = obj.SelectCityCombo();

            obj = null;

            if (lst.Count > 0)
            {
                ddlFromCity.DataSource     = lst;
                ddlFromCity.DataTextField  = "City_Name";
                ddlFromCity.DataValueField = "City_Idno";
                ddlFromCity.DataBind();
                ddlFromCity.Items.Insert(0, new ListItem("--Select--", "0"));
            }
        }
Пример #10
0
        protected void Ok_ServerClick(object sender, EventArgs e)
        {
            string UserName = Session["User"].ToString();
            int    ID       = Convert.ToInt32(HiddenFieldItem.Value);

            oDAL   = new InvoiceDAL();
            oClass = new InvoiceModel();
            oDs    = new DataSet();

            oClass.IsDeleted    = true;
            oClass.ReasonDelete = itemname.InnerText;
            string lbl = lblSelectedItem.Text;

            oClass.ID = ID;
            oDAL.DeleteData(UserName, oClass);
            PopulateGrid();
        }
Пример #11
0
        public List <Invoice> DisplayInvoiceBLL()
        {
            InvoiceDAL invoiceOperations = new InvoiceDAL();

            try
            {
                iList = invoiceOperations.DisplayInvoiceDAL();
                if (iList.Count <= 0)
                {
                    throw new InvoiceException("No Records Found!!!");
                }
            }
            catch (InvoiceException i)
            {
                throw i;
            }
            return(iList);
        }
        private void PrintInvoice()
        {
            InvoiceDAL objDAL      = new InvoiceDAL();
            Int64      iMaxInvIdno = objDAL.MaxIdno(ApplicationFunction.ConnectionString(), Convert.ToInt64(ddlFromCity.SelectedValue));
            Int64      icityIdno   = objDAL.cityID(ApplicationFunction.ConnectionString(), Convert.ToInt64(ddlFromCity.SelectedValue));
            String     InvoiceNo   = txtReceiptNo.Text;

            if (String.IsNullOrEmpty(txtReceiptNo.Text) != true)
            {
                if (InvoiceNo.Contains("-"))
                {
                    String value   = InvoiceNo;
                    var    lowEnd  = value.Split('-')[0];
                    var    highEnd = value.Split('-')[1];

                    int first = Convert.ToInt32(lowEnd);
                    int last  = Convert.ToInt32(highEnd);

                    for (int i = first; i <= last; i++)
                    {
                        if (i == last)
                        {
                            ar += i;
                        }
                        else
                        {
                            var arr = (i + ", ");
                            ar += arr;
                        }
                    }

                    string val     = ar;
                    string url     = "RptInvoiceDetail.aspx" + "?q=" + val + "&P=" + Convert.ToInt64(ddldateRange.SelectedValue) + "&R=" + icityIdno;
                    string fullURL = "window.open('" + url + "', '_blank' );";
                    ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", fullURL, true);
                }
                else
                {
                    string url     = "RptInvoiceDetail.aspx" + "?q=" + Convert.ToString(txtReceiptNo.Text) + "&P=" + Convert.ToInt64(ddldateRange.SelectedValue) + "&R=" + icityIdno;
                    string fullURL = "window.open('" + url + "', '_blank' );";
                    ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", fullURL, true);
                }
            }
        }
Пример #13
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.UrlReferrer == null)
            {
                base.AutoRedirect();
            }
            // conString = ConfigurationManager.ConnectionStrings["TransportMandiConnectionString"].ToString();
            conString = ApplicationFunction.ConnectionString();
            UFinYear  = base.FatchFinYear(1);
            if (!Page.IsPostBack)
            {
                if (base.CheckUserRights(intFormId) == false)
                {
                    Response.Redirect("PermissionDenied.aspx");
                }
                if (base.View == false)
                {
                    lnkbtnPreview.Visible = true;
                }
                this.BindSenderName();
                if (Convert.ToString(Session["Userclass"]) == "Admin")
                {
                    this.BindCity();
                }
                else
                {
                    this.BindCity(Convert.ToInt64(Session["UserIdno"]));
                    drpBaseCity.SelectedValue = Convert.ToString(base.UserFromCity);
                }

                BindDateRange();
                ddlDateRange.SelectedValue = Convert.ToString(base.UserDateRng);
                SetDate();
                TotalRecords();
                InvoiceDAL  objInvoiceDAL = new InvoiceDAL();
                tblUserPref obj           = objInvoiceDAL.SelectUserPref();
                hidPrintType.Value = Convert.ToString(obj.InvPrint_Type);
            }
            txtDateFrom.Attributes.Add("onkeypress", "return notAllowAnything(event);");
            txtDateTo.Attributes.Add("onkeypress", "return notAllowAnything(event);");
            ddlDateRange.Focus();
        }
Пример #14
0
        protected void chkAdminApp_CheckedChanged(object sender, EventArgs e)
        {
            string      strMsg      = string.Empty;
            InvoiceDAL  obj         = new InvoiceDAL();
            int         selRowIndex = ((GridViewRow)(((CheckBox)sender).Parent.Parent)).RowIndex;
            CheckBox    ddlchk      = (CheckBox)grdMain.Rows[selRowIndex].FindControl("chkAdminApp");
            HiddenField Idno        = (HiddenField)grdMain.Rows[selRowIndex].FindControl("hidInvIdno");
            Int64       value       = obj.UpdateAdminApproval(string.IsNullOrEmpty(Idno.Value) ? 0 : Convert.ToInt32(Idno.Value), ddlchk.Checked);

            if (value > 0)
            {
                strMsg = "Record Updated Successfully";
            }
            else
            {
                strMsg = "Record Not Updated";
            }

            ScriptManager.RegisterStartupScript(this, this.GetType(), "alertstrMsg", "PassMessage('" + strMsg + "')", true);
        }
Пример #15
0
        public long SaveFwdInvoice(IInvoice invoice, string misc, List <IChargeRate> expInvoiceCharge, int isedit)
        {
            long invoiceId       = 0;
            int  invoiceChargeId = 0;

            invoiceId = InvoiceDAL.SaveFwdInvoice(invoice, misc, isedit);

            if (invoiceId > 0)
            {
                if (!ReferenceEquals(expInvoiceCharge, null))
                {
                    foreach (IChargeRate cRate in expInvoiceCharge)
                    {
                        cRate.InvoiceId = invoiceId;
                        invoiceChargeId = InvoiceDAL.SaveInvoiceChargesFwd(cRate);
                    }
                }
            }

            return(invoiceId);
        }
Пример #16
0
        public bool AddInvoiceBLL(Invoice invoice)
        {
            InvoiceDAL invoiceOperations = new InvoiceDAL();

            bool isAdded = false;

            try
            {
                isAdded = invoiceOperations.AddInvoiceDAL(invoice);
                if (isAdded == false)
                {
                    throw new InvoiceException("Invoice Details not Added");
                }
            }
            catch (InvoiceException i)
            {
                throw i;
            }

            return(isAdded);
        }
Пример #17
0
        public long SaveInvoice(IInvoice invoice, string misc)
        {
            long invoiceId       = 0;
            int  invoiceChargeId = 0;

            invoiceId = InvoiceDAL.SaveInvoice(invoice, misc);

            if (invoiceId > 0)
            {
                if (!ReferenceEquals(invoice.ChargeRates, null))
                {
                    foreach (IChargeRate cRate in invoice.ChargeRates)
                    {
                        cRate.InvoiceId = invoiceId;
                        invoiceChargeId = InvoiceDAL.SaveInvoiceCharges(cRate);
                    }
                }
            }

            return(invoiceId);
        }
Пример #18
0
        private void PopulateGrid()
        {
            oDAL = new InvoiceDAL();
            oDs  = new DataSet();

            if (searchKeyword.Value != "")
            {
                // oDs = oDAL.SeachData(searchKeyword.Value);
            }
            else
            {
                oDs = oDAL.SelectAll();
            }



            if (oDs != null)
            {
                gvList.DataSource = oDs.Tables[0];
                gvList.DataBind();
            }
        }
Пример #19
0
        public List <Invoice> DeserializeInvoiceBLL()
        {
            List <Invoice> iList = new List <Invoice>();

            try
            {
                InvoiceDAL dalobj = new InvoiceDAL();

                iList = dalobj.DeserializeInvoice();
                if (iList.Count <= 0)
                {
                    throw new InvoiceException("No Records Found in File");
                }
            }

            catch (InvoiceException i)
            { throw i; }

            catch (IOException i)
            { throw i; }

            return(iList);
        }
Пример #20
0
        private void PopulateData(int id)
        {
            oDAL   = new InvoiceDAL();
            oClass = new InvoiceModel();
            oDs    = new DataSet();

            oClass.ID = id;

            oDs                        = oDAL.SelectByID(oClass);
            InvoiceID.Value            = oDs.Tables[0].Rows[0][0].ToString();
            InvoiceNo.Value            = oDs.Tables[0].Rows[0][1].ToString();
            ddlInsurance.SelectedValue = oDs.Tables[0].Rows[0][2].ToString();
            PatientNo.Value            = oDs.Tables[0].Rows[0]["PatientNo"].ToString();
            ddlPatient.SelectedValue   = oDs.Tables[0].Rows[0]["PatientNo"].ToString();
            CaseNo.Value               = oDs.Tables[0].Rows[0][4].ToString();
            InvoiceDate.Value          = oDs.Tables[0].Rows[0][5].ToString();
            Medex.Value                = oDs.Tables[0].Rows[0][6].ToString();
            CaseFee.Value              = oDs.Tables[0].Rows[0][7].ToString();
            TotalBill.Value            = oDs.Tables[0].Rows[0][8].ToString();
            BillingDate.Value          = oDs.Tables[0].Rows[0][9].ToString();
            PaidDate.Value             = oDs.Tables[0].Rows[0][10].ToString();
            ddlStatus.SelectedValue    = oDs.Tables[0].Rows[0][11].ToString();
            txtRemarks.Value           = oDs.Tables[0].Rows[0][12].ToString();
        }
Пример #21
0
 public DataTable GetBLno(long NvoccId, long LocationId)
 {
     return(InvoiceDAL.GetBLno(NvoccId, LocationId));
 }
Пример #22
0
        public ResultModel CompleteCancel(UserModel user, int businessInvoiceId)
        {
            ResultModel result = new ResultModel();

            try
            {
                BusinessInvoiceDAL businessInvoiceDAL = new BusinessInvoiceDAL();
                InvoiceDAL invoiceDAL = new InvoiceDAL();
                BusinessInvoiceDetailDAL detailDAL = new BusinessInvoiceDetailDAL();

                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    //获取财务票
                    result = businessInvoiceDAL.Get(user, businessInvoiceId);
                    if (result.ResultStatus != 0)
                        return result;

                    BusinessInvoice businessInvoice = result.ReturnValue as BusinessInvoice;
                    if (businessInvoice == null || businessInvoice.BusinessInvoiceId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "发票验证失败";
                        return result;
                    }

                    //获取发票
                    result = invoiceDAL.Get(user, businessInvoice.InvoiceId);
                    if (result.ResultStatus != 0)
                        return result;
                    Operate.Model.Invoice invoice = result.ReturnValue as Operate.Model.Invoice;
                    if (invoice == null || invoice.InvoiceId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "发票获取失败";
                        return result;
                    }

                    //发票
                    result = invoiceDAL.CompleteCancel(user, invoice);
                    if (result.ResultStatus != 0)
                        return result;

                    //获取明细
                    result = detailDAL.Load(user, businessInvoice.BusinessInvoiceId, StatusEnum.已完成);
                    if (result.ResultStatus != 0)
                        return result;

                    List<BusinessInvoiceDetail> details = result.ReturnValue as List<BusinessInvoiceDetail>;
                    if (details == null)
                    {
                        result.ResultStatus = -1;
                        result.Message = "发票明细获取失败";
                        return result;
                    }

                    foreach (BusinessInvoiceDetail detail in details)
                    {
                        result = detailDAL.CompleteCancel(user, detail);
                        if (result.ResultStatus != 0)
                            return result;
                    }

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                result.ResultStatus = -1;
                result.Message = ex.Message;
            }

            return result;
        }
Пример #23
0
        public ResultModel Update(UserModel user, Operate.Model.Invoice invoice, FinanceInvoice fundsInvoice)
        {
            ResultModel result = new ResultModel();

            try
            {
                FinanceInvoiceDAL fundsInvoiceDAL = new FinanceInvoiceDAL();
                InvoiceDAL invoiceDAL = new InvoiceDAL();

                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
                {

                    //获取财务发票
                    result = fundsInvoiceDAL.Get(user, fundsInvoice.FinanceInvoiceId);
                    if (result.ResultStatus != 0)
                        return result;

                    FinanceInvoice resultFundsInvoice = result.ReturnValue as FinanceInvoice;
                    if (resultFundsInvoice == null || resultFundsInvoice.FinanceInvoiceId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "财务发票获取失败";
                        return result;
                    }

                    //更新财务发票
                    resultFundsInvoice.AssetId = fundsInvoice.AssetId;
                    resultFundsInvoice.IntegerAmount = fundsInvoice.IntegerAmount;
                    resultFundsInvoice.NetAmount = fundsInvoice.NetAmount;
                    resultFundsInvoice.MUId = fundsInvoice.MUId;
                    resultFundsInvoice.VATRatio = fundsInvoice.VATRatio;
                    resultFundsInvoice.VATBala = fundsInvoice.VATBala;

                    result = fundsInvoiceDAL.Update(user, resultFundsInvoice);
                    if (result.ResultStatus != 0)
                        return result;

                    //获取发票
                    result = invoiceDAL.Get(user, resultFundsInvoice.InvoiceId);
                    if (result.ResultStatus != 0)
                        return result;
                    Operate.Model.Invoice resultInvoice = result.ReturnValue as Operate.Model.Invoice;
                    if (resultInvoice == null || resultInvoice.InvoiceId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "发票信息获取失败";
                        return result;
                    }

                    resultInvoice.InvoiceDate = invoice.InvoiceDate;
                    resultInvoice.InvoiceName = invoice.InvoiceName;
                    resultInvoice.InvoiceBala = invoice.InvoiceBala;
                    resultInvoice.CurrencyId = invoice.CurrencyId;
                    resultInvoice.OutCorpId = invoice.OutCorpId;

                    Corporation outCorp = UserProvider.Corporations.FirstOrDefault(temp => temp.CorpId == invoice.OutCorpId);
                    if (outCorp == null || outCorp.CorpId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "开票公司信息错误";
                        return result;
                    }
                    resultInvoice.OutCorpName = outCorp.CorpName;

                    resultInvoice.InCorpId = invoice.InCorpId;
                    Corporation inCorp = UserProvider.Corporations.FirstOrDefault(temp => temp.CorpId == invoice.InCorpId);
                    if (inCorp == null || inCorp.CorpId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "收票公司信息错误";
                        return result;
                    }
                    resultInvoice.InCorpName = inCorp.CorpName;
                    resultInvoice.Memo = invoice.Memo;

                    result = invoiceDAL.Update(user, resultInvoice);
                    if (result.ResultStatus != 0)
                        return result;

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                result.ResultStatus = -1;
                result.Message = ex.Message;
            }

            return result;
        }
Пример #24
0
 public List <ICharge> GetAllCharges(int docTypeId)
 {
     return(InvoiceDAL.GetAllCharges(docTypeId));
 }
Пример #25
0
 public DataTable GetCHAId()
 {
     return(InvoiceDAL.GetCHAId());
 }
Пример #26
0
 public DataTable Volume(string BLno)
 {
     return(InvoiceDAL.Volume(BLno));
 }
Пример #27
0
        public ResultModel PayApplyInvoiceUpdate(UserModel user, Apply apply, PayApply payApply, List<InvoicePayApply> details)
        {
            ResultModel result = new ResultModel();

            try
            {
                InvoicePayApplyDAL invoicePayApplyDAL = new InvoicePayApplyDAL();
                ApplyDAL applyDAL = new ApplyDAL();
                PayApplyDAL payApplyDAL = new PayApplyDAL();
                InvoiceDAL invoiceDAL = new InvoiceDAL();
                SIDAL sIDAL = new SIDAL();

                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    if (details == null || details.Count == 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "未选中任务发票";
                        return result;
                    }

                    //验证总额
                    decimal sumApplyBala = details.Sum(temp => temp.ApplyBala);
                    if (sumApplyBala != payApply.ApplyBala)
                    {
                        result.ResultStatus = -1;
                        result.Message = "申请总额与分项总额不相等";
                        return result;
                    }

                    //获取付款申请
                    result = this.payapplyDAL.Get(user, payApply.PayApplyId);
                    if (result.ResultStatus != 0)
                        return result;

                    PayApply resultPayApply = result.ReturnValue as PayApply;
                    if (resultPayApply == null || resultPayApply.PayApplyId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "付款申请不存在";
                        return result;
                    }

                    //获取发票申请列表
                    result = invoicePayApplyDAL.Load(user, resultPayApply.PayApplyId);
                    if (result.ResultStatus != 0)
                        return result;

                    List<InvoicePayApply> resultDetails = result.ReturnValue as List<InvoicePayApply>;
                    if (resultDetails == null)
                    {
                        result.ResultStatus = -1;
                        result.Message = "付款申请发票明细列表获取失败";
                        return result;
                    }

                    //作废原有发票申请明细
                    foreach (InvoicePayApply detail in resultDetails)
                    {
                        detail.DetailStatus = StatusEnum.已录入;
                        result = invoicePayApplyDAL.Invalid(user, detail);
                        if (result.ResultStatus != 0)
                            return result;
                    }

                    //验证发票
                    int payDept = 0;
                    int outCorpId = 0;
                    foreach (InvoicePayApply detail in details)
                    {
                        //获取价外票
                        result = sIDAL.Get(user, detail.SIId);
                        if (result.ResultStatus != 0)
                            return result;

                        SI sI = result.ReturnValue as SI;
                        if (sI == null || sI.SIId <= 0)
                        {
                            result.ResultStatus = -1;
                            result.Message = "价外票不存在";
                            return result;
                        }

                        //获取发票
                        result = invoiceDAL.Get(user, detail.InvoiceId);
                        if (result.ResultStatus != 0)
                            return result;

                        Operate.Model.Invoice invoice = result.ReturnValue as Operate.Model.Invoice;
                        if (invoice == null || invoice.InvoiceId <= 0)
                        {
                            result.ResultStatus = -1;
                            result.Message = "发票不存在";
                            return result;
                        }

                        //验证币种
                        if (payApply.CurrencyId != invoice.CurrencyId)
                        {
                            result.ResultStatus = -1;
                            result.Message = "发票币种不一致";
                            return result;
                        }

                        //验证开票抬头
                        if (outCorpId == 0) { outCorpId = invoice.OutCorpId; }
                        if (outCorpId != invoice.OutCorpId)
                        {
                            result.ResultStatus = -1;
                            result.Message = "发票开票公司不一致";
                            return result;
                        }

                        //验证成本部门
                        if (payDept == 0) { payDept = sI.PayDept; }
                        if (payDept != sI.PayDept)
                        {
                            result.ResultStatus = -1;
                            result.Message = "发票成本部门不一致";
                            return result;
                        }

                        //验证可申请余额
                        result = invoicePayApplyDAL.LoadByInvoice(user, detail.InvoiceId);
                        if (result.ResultStatus != 0)
                            return result;
                        resultDetails = result.ReturnValue as List<InvoicePayApply>;
                        if (resultDetails == null)
                        {
                            result.ResultStatus = -1;
                            result.Message = "获取发票已申请列表失败";
                            return result;
                        }

                        decimal applyBala = resultDetails.Sum(temp => temp.ApplyBala);
                        if (applyBala >= invoice.InvoiceBala)
                        {
                            result.ResultStatus = -1;
                            result.Message = string.Format("发票{0}款项已全部申请", invoice.InvoiceNo);
                            return result;
                        }

                        if (invoice.InvoiceBala - applyBala < detail.ApplyBala)
                        {
                            result.ResultStatus = -1;
                            result.Message = string.Format("发票{0}申请金额超过可申请余额,申请失败", invoice.InvoiceNo);
                            return result;
                        }
                    }

                    //更新申请主表
                    Department dept = UserProvider.Departments.FirstOrDefault(temp => temp.DeptId == apply.ApplyDept);
                    if (dept == null || dept.DeptId < 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "申请部门不存在";
                        return result;
                    }

                    //获取主申请
                    result = applyDAL.Get(user, resultPayApply.ApplyId);
                    if (result.ResultStatus != 0)
                        return result;

                    Apply resultApply = result.ReturnValue as Apply;
                    if (resultApply == null || resultApply.ApplyId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "主申请获取失败";
                        return result;
                    }

                    resultApply.ApplyDept = dept.DeptId;
                    resultApply.ApplyCorp = apply.ApplyCorp;
                    resultApply.ApplyDesc = apply.ApplyDesc;
                    resultApply.ApplyTime = apply.ApplyTime;
                    resultApply.EmpId = user.EmpId;
                    result = applyDAL.Update(user, resultApply);
                    if (result.ResultStatus != 0)
                        return result;

                    //更新付款申请表
                    resultPayApply.RecCorpId = payApply.RecCorpId;
                    resultPayApply.RecBankId = payApply.RecBankId;
                    resultPayApply.RecBankAccountId = payApply.RecBankAccountId;
                    resultPayApply.RecBankAccount = payApply.RecBankAccount;
                    resultPayApply.CurrencyId = payApply.CurrencyId;
                    resultPayApply.ApplyBala = sumApplyBala;
                    resultPayApply.PayMode = payApply.PayMode;
                    resultPayApply.PayDeadline = payApply.PayDeadline;
                    resultPayApply.PayMatter = payApply.PayMatter;
                    resultPayApply.SpecialDesc = payApply.SpecialDesc;

                    result = payapplyDAL.Update(user, resultPayApply);
                    if (result.ResultStatus != 0)
                        return result;

                    //新增发票付款申请关联表
                    foreach (InvoicePayApply detail in details)
                    {
                        detail.DetailStatus = StatusEnum.已生效;
                        detail.PayApplyId = resultPayApply.PayApplyId;

                        result = invoicePayApplyDAL.Insert(user, detail);
                        if (result.ResultStatus != 0)
                            return result;
                    }

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                result.ResultStatus = -1;
                result.Message = ex.Message;
            }

            return result;
        }
Пример #28
0
        public ResultModel Create(UserModel user, Operate.Model.Invoice invoice, FinanceInvoice fundsInvoice)
        {
            ResultModel result = new ResultModel();

            try
            {
                FinanceInvoiceDAL fundsInvoiceDAL = new FinanceInvoiceDAL();
                InvoiceDAL invoiceDAL = new InvoiceDAL();

                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    //新增发票主表
                    int invoiceId = 0;

                    invoice.InvoiceType = (int)InvoiceTypeEnum.财务发票;

                    invoice.InvoiceStatus = StatusEnum.已录入;
                    Corporation outCorp = UserProvider.Corporations.FirstOrDefault(temp => temp.CorpId == invoice.OutCorpId);
                    if (outCorp == null || outCorp.CorpId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "开票公司信息错误";
                        return result;
                    }
                    invoice.OutCorpName = outCorp.CorpName;
                    //invoice.OutBlocId = outCorp.b

                    Corporation inCorp = UserProvider.Corporations.FirstOrDefault(temp => temp.CorpId == invoice.InCorpId);
                    if (inCorp == null || inCorp.CorpId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "收票公司信息错误";
                        return result;
                    }
                    invoice.InCorpName = inCorp.CorpName;

                    result = invoiceDAL.Insert(user, invoice);
                    if (result.ResultStatus != 0)
                        return result;

                    if (result.ReturnValue == null || !int.TryParse(result.ReturnValue.ToString(), out invoiceId))
                    {
                        result.ResultStatus = -1;
                        result.Message = "发票添加失败";
                        return result;
                    }

                    //新增财务发票表
                    fundsInvoice.InvoiceId = invoiceId;
                    fundsInvoice.VATRatio = fundsInvoice.VATRatio;
                    result = fundsInvoiceDAL.Insert(user, fundsInvoice);
                    if (result.ResultStatus != 0)
                        return result;

                    if (result.ResultStatus == 0) result.ReturnValue = invoiceId;

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                result.ResultStatus = -1;
                result.Message = ex.Message;
            }

            return result;
        }
Пример #29
0
        public ResultModel UpdateBusinessInvoice(UserModel user, Operate.Model.Invoice invoice, BusinessInvoice invoiceBusiness, List<BusinessInvoiceDetail> details)
        {
            ResultModel result = new ResultModel();

            try
            {
                BusinessInvoiceDAL businessInvoiceDAL = new BusinessInvoiceDAL();
                InvoiceDAL invoiceDAL = new InvoiceDAL();
                BusinessInvoiceDetailDAL detailDAL = new BusinessInvoiceDetailDAL();
                StockReceiptDetailDAL stockReceiptDetailDAL = new StockReceiptDetailDAL();

                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    //验证发票
                    if (invoiceBusiness.BusinessInvoiceId <= 0)
                    {
                        result.Message = "发票不存在";
                        return result;
                    }

                    result = businessinvoiceDAL.Get(user, invoiceBusiness.BusinessInvoiceId);
                    if (result.ResultStatus != 0)
                        return result;

                    BusinessInvoice resultBusinessInvoice = result.ReturnValue as BusinessInvoice;
                    if (resultBusinessInvoice == null || resultBusinessInvoice.BusinessInvoiceId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "发票不存在";
                        return result;
                    }

                    //更新发票
                    resultBusinessInvoice.IntegerAmount = invoiceBusiness.IntegerAmount;
                    resultBusinessInvoice.NetAmount = invoiceBusiness.NetAmount;
                    resultBusinessInvoice.VATRatio = invoiceBusiness.VATRatio;
                    resultBusinessInvoice.VATBala = invoiceBusiness.VATBala;
                    resultBusinessInvoice.UnitPrice = invoiceBusiness.UnitPrice;

                    resultBusinessInvoice.Status = StatusEnum.已录入;

                    result = businessinvoiceDAL.Update(user, resultBusinessInvoice);
                    if (result.ResultStatus != 0)
                        return result;

                    //获取发票主表
                    result = invoiceDAL.Get(user, resultBusinessInvoice.InvoiceId);
                    if (result.ResultStatus != 0)
                        return result;

                    Operate.Model.Invoice resultInvoice = result.ReturnValue as Operate.Model.Invoice;
                    if (resultInvoice == null || resultInvoice.InvoiceId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "发票不存在";
                        return result;
                    }

                    //更新发票
                    resultInvoice.InvoiceDate = invoice.InvoiceDate;
                    resultInvoice.InvoiceName = invoice.InvoiceName;
                    resultInvoice.InvoiceBala = invoice.InvoiceBala;
                    resultInvoice.OutCorpId = invoice.OutCorpId;
                    resultInvoice.InCorpId = invoice.InCorpId;
                    resultInvoice.Memo = invoice.Memo;

                    result = invoiceDAL.Update(user, resultInvoice);
                    if (result.ResultStatus != 0)
                        return result;

                    //获取发票明细
                    result = detailDAL.Load(user, resultBusinessInvoice.BusinessInvoiceId);
                    if (result.ResultStatus != 0)
                        return result;

                    List<BusinessInvoiceDetail> resultDetails = result.ReturnValue as List<BusinessInvoiceDetail>;
                    if (resultDetails == null)
                    {
                        result.ResultStatus = -1;
                        result.Message = "获取发票明细失败";
                        return result;
                    }

                    //作废发票明细
                    foreach (BusinessInvoiceDetail detail in resultDetails)
                    {
                        if (detail.DetailStatus == StatusEnum.已生效)
                            detail.DetailStatus = StatusEnum.已录入;

                        result = detailDAL.Invalid(user, detail);
                        if (result.ResultStatus != 0)
                            return result;
                    }

                    //新增发票明细
                    StockLogDAL stockLogDAL = new StockLogDAL();
                    StockDAL stockDAL = new StockDAL();
                    foreach (BusinessInvoiceDetail detail in details)
                    {
                        if (detail.NetAmount != 0 && detail.StockId > 0)
                        {
                            //验证库存
                            result = stockDAL.Get(user, detail.StockId);
                            if (result.ResultStatus != 0)
                                return result;
                            Stock stock = result.ReturnValue as Stock;
                            if (stock == null || stock.StockId <= 0)
                            {
                                result.ResultStatus = -1;
                                result.Message = "发票库存获取失败";
                                return result;
                            }

                            //验证库存流水
                            result = stockLogDAL.Get(user, detail.StockLogId);
                            if (result.ResultStatus != 0)
                                return result;

                            StockLog stockLog = result.ReturnValue as StockLog;
                            if (stockLog == null || stockLog.StockLogId <= 0)
                            {
                                result.ResultStatus = -1;
                                result.Message = "新增发票流水获取失败";
                                return result;
                            }

                            //基本验证
                            if (stockLog.StockId != stock.StockId)
                            {
                                result.ResultStatus = -1;
                                result.Message = "库存与库存流水不匹配";
                                return result;
                            }

                            //验证流水合约与发票合约是否相同
                            if (stockLog.SubContractId != resultBusinessInvoice.SubContractId)
                            {
                                result.ResultStatus = -1;
                                result.Message = "合约与库存流水不匹配";
                                return result;
                            }

                            detail.DetailStatus = StatusEnum.已生效;
                            detail.InvoiceId = resultInvoice.InvoiceId;
                            detail.BusinessInvoiceId = resultBusinessInvoice.BusinessInvoiceId;
                            detail.StockId = stockLog.StockId;
                            detail.StockLogId = stockLog.StockLogId;

                            if (resultInvoice.InvoiceType == (int)InvoiceTypeEnum.SuppleFinalInvoice)
                            {
                                //获取当前流水回执信息
                                result = stockReceiptDetailDAL.LoadByStockLogId(user, stockLog.StockLogId);
                                List<StockReceiptDetail> stockReceiptDetails = result.ReturnValue as List<StockReceiptDetail>;
                                if (stockReceiptDetails == null)
                                {
                                    result.ResultStatus = -1;
                                    result.Message = "当前流水未回执,不能补零";
                                    return result;
                                }

                                decimal sumQtyMiss = stockReceiptDetails.Sum(temp => temp.QtyMiss);
                                detail.IntegerAmount = sumQtyMiss;
                                detail.NetAmount = sumQtyMiss;
                            }
                            else
                            {
                                detail.IntegerAmount = stockLog.GrossAmount;
                                detail.NetAmount = stockLog.NetAmount;
                            }

                            result = detailDAL.Insert(user, detail);
                            if (result.ResultStatus != 0)
                                return result;
                        }
                    }

                    if (result.ResultStatus == 0)
                        result.ReturnValue = resultInvoice;
                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                result.ResultStatus = -1;
                result.Message = ex.Message;
            }

            return result;
        }
Пример #30
0
 public List <IChargeRate> GetAllChargeRate(int ChargesID, long LocationID, int TerminalID) //, int WashingType
 {
     return(InvoiceDAL.GetAllChargeRate(ChargesID, LocationID, TerminalID));                //, WashingType
 }
Пример #31
0
        public ResultModel CreateByInvApply(UserModel user, Operate.Model.Invoice invoice, FinanceInvoice fundsInvoice, string bids, int invoiceApplyId)
        {
            ResultModel result = new ResultModel();

            try
            {
                FinanceInvoiceDAL fundsInvoiceDAL = new FinanceInvoiceDAL();
                InvoiceDAL invoiceDAL = new InvoiceDAL();

                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    //新增发票主表
                    int invoiceId = 0;

                    invoice.InvoiceType = (int)InvoiceTypeEnum.财务发票;

                    invoice.InvoiceStatus = StatusEnum.已录入;
                    Corporation outCorp = UserProvider.Corporations.FirstOrDefault(temp => temp.CorpId == invoice.OutCorpId);
                    if (outCorp == null || outCorp.CorpId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "开票公司信息错误";
                        return result;
                    }
                    invoice.OutCorpName = outCorp.CorpName;
                    //invoice.OutBlocId = outCorp.b

                    Corporation inCorp = UserProvider.Corporations.FirstOrDefault(temp => temp.CorpId == invoice.InCorpId);
                    if (inCorp == null || inCorp.CorpId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "收票公司信息错误";
                        return result;
                    }
                    invoice.InCorpName = inCorp.CorpName;

                    result = invoiceDAL.Insert(user, invoice);
                    if (result.ResultStatus != 0)
                        return result;

                    if (result.ReturnValue == null || !int.TryParse(result.ReturnValue.ToString(), out invoiceId))
                    {
                        result.ResultStatus = -1;
                        result.Message = "发票添加失败";
                        return result;
                    }

                    //新增财务发票表
                    fundsInvoice.InvoiceId = invoiceId;
                    fundsInvoice.VATRatio = fundsInvoice.VATRatio;
                    result = fundsInvoiceDAL.Insert(user, fundsInvoice);
                    if (result.ResultStatus != 0)
                        return result;

                    int financeInvoiceId = (int)result.ReturnValue;

                    //财务发票业务发票分配
                    if (!string.IsNullOrEmpty(bids))
                    {
                        FinBusInvAllotDAL finBusInvAllotDAL = new FinBusInvAllotDAL();
                        result = finBusInvAllotDAL.Insert(user, new FinBusInvAllot()
                        {
                            AllotBala = invoice.InvoiceBala,
                            CurrencyId = invoice.CurrencyId,
                            Alloter = user.EmpId,
                            AllotDate = DateTime.Now,
                            AllotStatus = StatusEnum.已生效
                        });

                        if (result.ResultStatus != 0)
                            return result;

                        int allotId = (int)result.ReturnValue;

                        FinBusInvAllotDetailDAL finBusInvAllotDetailDAL = new FinBusInvAllotDetailDAL();
                        foreach (string businessInvoiceId in bids.Split(','))
                        {
                            result = invoiceDAL.GetByBussinessInvoiceId(user, Convert.ToInt32(businessInvoiceId));
                            if (result.ResultStatus != 0)
                                return result;

                            Operate.Model.Invoice busInvoice = result.ReturnValue as Operate.Model.Invoice;

                            result = finBusInvAllotDetailDAL.Insert(user, new FinBusInvAllotDetail()
                            {
                                AllotId = allotId,
                                BusinessInvoiceId = Convert.ToInt32(businessInvoiceId),
                                FinanceInvoiceId = financeInvoiceId,
                                AllotBala = busInvoice.InvoiceBala,
                                DetailStatus = StatusEnum.已生效
                            });
                            if (result.ResultStatus != 0)
                                return result;
                        }
                    }

                    //添加开票申请与财务票关联
                    InvoiceApplyFinanceDAL invoiceApplyFinanceDAL = new InvoiceApplyFinanceDAL();
                    result = invoiceApplyFinanceDAL.Insert(user, new InvoiceApplyFinance()
                    {
                        InvoiceId = invoiceId,
                        FinanceInvoiceId = financeInvoiceId,
                        InvoiceApplyId = invoiceApplyId
                    });
                    if (result.ResultStatus != 0)
                        return result;

                    invoice.InvoiceId = invoiceId;
                    if (result.ResultStatus == 0) result.ReturnValue = invoice;

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                result.ResultStatus = -1;
                result.Message = ex.Message;
            }

            return result;
        }
Пример #32
0
 public DataTable GrossWeight(string BLno)
 {
     return(InvoiceDAL.GrossWeight(BLno));
 }
Пример #33
0
 public DataTable FEU(string BLno)
 {
     return(InvoiceDAL.FEU(BLno));
 }
Пример #34
0
        public ResultModel PayApplyInvoiceCreate(UserModel user, Apply apply, PayApply payApply, List<InvoicePayApply> details)
        {
            ResultModel result = new ResultModel();

            try
            {
                InvoicePayApplyDAL invoicePayApplyDAL = new InvoicePayApplyDAL();
                ApplyDAL applyDAL = new ApplyDAL();
                PayApplyDAL payApplyDAL = new PayApplyDAL();
                InvoiceDAL invoiceDAL = new InvoiceDAL();
                SIDAL sIDAL = new SIDAL();

                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    if (details == null || details.Count == 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "未选中任务发票";
                        return result;
                    }

                    //验证总额
                    decimal sumApplyBala = details.Sum(temp => temp.ApplyBala);
                    if (sumApplyBala != payApply.ApplyBala)
                    {
                        result.ResultStatus = -1;
                        result.Message = "申请总额与分项总额不相等";
                        return result;
                    }

                    //验证发票
                    int payDept = 0;
                    int outCorpId = 0;
                    foreach (InvoicePayApply detail in details)
                    {
                        //获取价外票
                        result = sIDAL.Get(user, detail.SIId);
                        if (result.ResultStatus != 0)
                            return result;

                        SI sI = result.ReturnValue as SI;
                        if (sI == null || sI.SIId <= 0)
                        {
                            result.ResultStatus = -1;
                            result.Message = "价外票不存在";
                            return result;
                        }

                        //获取发票
                        result = invoiceDAL.Get(user, detail.InvoiceId);
                        if (result.ResultStatus != 0)
                            return result;

                        Operate.Model.Invoice invoice = result.ReturnValue as Operate.Model.Invoice;
                        if (invoice == null || invoice.InvoiceId <= 0)
                        {
                            result.ResultStatus = -1;
                            result.Message = "发票不存在";
                            return result;
                        }

                        //验证币种
                        if (payApply.CurrencyId != invoice.CurrencyId)
                        {
                            result.ResultStatus = -1;
                            result.Message = "发票币种不一致";
                            return result;
                        }

                        //验证开票抬头
                        if (outCorpId == 0) { outCorpId = invoice.OutCorpId; }
                        if (outCorpId != invoice.OutCorpId)
                        {
                            result.ResultStatus = -1;
                            result.Message = "发票开票公司不一致";
                            return result;
                        }

                        //验证成本部门
                        if (payDept == 0) { payDept = sI.PayDept; }
                        if (payDept != sI.PayDept)
                        {
                            result.ResultStatus = -1;
                            result.Message = "发票成本部门不一致";
                            return result;
                        }

                        //验证可申请余额
                        result = invoicePayApplyDAL.LoadByInvoice(user, detail.InvoiceId);
                        if (result.ResultStatus != 0)
                            return result;
                        List<InvoicePayApply> resultDetails = result.ReturnValue as List<InvoicePayApply>;
                        if (resultDetails == null)
                        {
                            result.ResultStatus = -1;
                            result.Message = "获取发票已申请列表失败";
                            return result;
                        }

                        decimal applyBala = resultDetails.Sum(temp => temp.ApplyBala);
                        if (applyBala >= invoice.InvoiceBala)
                        {
                            result.ResultStatus = -1;
                            result.Message = string.Format("发票{0}款项已全部申请", invoice.InvoiceNo);
                            return result;
                        }

                        if (invoice.InvoiceBala - applyBala < detail.ApplyBala)
                        {
                            result.ResultStatus = -1;
                            result.Message = string.Format("发票{0}申请金额超过可申请余额,申请失败", invoice.InvoiceNo);
                            return result;
                        }
                    }

                    //新增申请主表
                    Department dept = UserProvider.Departments.FirstOrDefault(temp => temp.DeptId == apply.ApplyDept);
                    if (dept == null || dept.DeptId < 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "申请部门不存在";
                        return result;
                    }

                    int applyId = 0;
                    apply.ApplyDept = dept.DeptId;
                    apply.ApplyType = ApplyType.付款申请;
                    apply.EmpId = user.EmpId;
                    apply.ApplyStatus = StatusEnum.已录入;
                    result = applyDAL.Insert(user, apply);
                    if (result.ResultStatus != 0)
                        return result;

                    if (result.ReturnValue == null || !int.TryParse(result.ReturnValue.ToString(), out applyId))
                    {
                        result.ResultStatus = -1;
                        result.Message = "申请主表新增失败";
                        return result;
                    }

                    //新增付款申请表
                    payApply.ApplyId = applyId;
                    payApply.PayApplySource = (int)FundsStyleEnum.InvoicePayApply;
                    payApply.ApplyBala = sumApplyBala;
                    result = payapplyDAL.Insert(user, payApply);
                    if (result.ResultStatus != 0)
                        return result;
                    int payApplyId = 0;
                    if (result.ReturnValue == null || !int.TryParse(result.ReturnValue.ToString(), out payApplyId))
                    {
                        result.ResultStatus = -1;
                        result.Message = "付款申请新增失败";
                        return result;
                    }

                    //新增发票付款申请关联表
                    foreach (InvoicePayApply detail in details)
                    {
                        detail.DetailStatus = StatusEnum.已生效;
                        detail.PayApplyId = payApplyId;

                        result = invoicePayApplyDAL.Insert(user, detail);
                        if (result.ResultStatus != 0)
                            return result;
                    }

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                result.ResultStatus = -1;
                result.Message = ex.Message;
            }

            return result;
        }
Пример #35
0
 public DataTable BLdate(string BLno)
 {
     return(InvoiceDAL.BLdate(BLno));
 }
Пример #36
0
        public ResultModel Complete(UserModel user, int businessInvoiceId)
        {
            ResultModel result = new ResultModel();

            try
            {
                BusinessInvoiceDAL businessInvoiceDAL = new BusinessInvoiceDAL();
                InvoiceDAL invoiceDAL = new InvoiceDAL();
                BusinessInvoiceDetailDAL detailDAL = new BusinessInvoiceDetailDAL();

                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    //获取业务票
                    result = businessInvoiceDAL.Get(user, businessInvoiceId);
                    if (result.ResultStatus != 0)
                        return result;

                    BusinessInvoice businessInvoice = result.ReturnValue as BusinessInvoice;
                    if (businessInvoice == null || businessInvoice.BusinessInvoiceId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "发票验证失败";
                        return result;
                    }

                    //获取发票
                    result = invoiceDAL.Get(user, businessInvoice.InvoiceId);
                    if (result.ResultStatus != 0)
                        return result;
                    Operate.Model.Invoice invoice = result.ReturnValue as Operate.Model.Invoice;
                    if (invoice == null || invoice.InvoiceId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "发票获取失败";
                        return result;
                    }

                    //获取明细
                    result = detailDAL.Load(user, businessInvoice.BusinessInvoiceId);
                    if (result.ResultStatus != 0)
                        return result;

                    List<BusinessInvoiceDetail> details = result.ReturnValue as List<BusinessInvoiceDetail>;
                    if (details == null)
                    {
                        result.ResultStatus = -1;
                        result.Message = "发票明细获取失败";
                        return result;
                    }

                    //验证
                    switch (invoice.InvoiceType)
                    {
                        case (int)InvoiceTypeEnum.ProvisionalInvoice:
                            //临票验证
                            //必须所有替临终票为已完成状态

                            break;
                    }

                    //发票完成
                    result = invoiceDAL.Complete(user, invoice);
                    if (result.ResultStatus != 0)
                        return result;

                    foreach (BusinessInvoiceDetail detail in details)
                    {
                        result = detailDAL.Complete(user, detail);
                        if (result.ResultStatus != 0)
                            return result;
                    }

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                result.ResultStatus = -1;
                result.Message = ex.Message;
            }

            return result;
        }
Пример #37
0
 public decimal GetExchangeRate(long BlId)
 {
     return(InvoiceDAL.GetExchangeRate(BlId));
 }
Пример #38
0
        public ResultModel CreateBusinessInvoice(UserModel user, Operate.Model.Invoice invoice, BusinessInvoice invoiceBusiness, List<BusinessInvoiceDetail> details, InvoiceTypeEnum invoiceType)
        {
            ResultModel result = new ResultModel();

            try
            {
                BusinessInvoiceDAL businessInvoiceDAL = new BusinessInvoiceDAL();
                InvoiceDAL invoiceDAL = new InvoiceDAL();
                BusinessInvoiceDetailDAL detailDAL = new BusinessInvoiceDetailDAL();
                ContractSubDAL subDAL = new ContractSubDAL();
                StockReceiptDetailDAL stockReceiptDetailDAL = new StockReceiptDetailDAL();
                SubDetailDAL subDetailDAL = new SubDetailDAL();

                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    //验证子合约
                    result = subDAL.Get(user, invoiceBusiness.SubContractId);
                    if (result.ResultStatus != 0)
                        return result;

                    ContractSub sub = result.ReturnValue as ContractSub;
                    if (sub == null || sub.SubId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "子合约不存在";
                        return result;
                    }

                    if (sub.SubStatus != StatusEnum.已生效)
                    {
                        result.ResultStatus = -1;
                        result.Message = "子合约非已生效状态,不能新增临票";
                        return result;
                    }

                    //获取子合约明细
                    result = subDetailDAL.GetDetailBySubId(user, sub.SubId);
                    if (result.ResultStatus != 0)
                        return result;

                    SubDetail subDetail = result.ReturnValue as SubDetail;
                    if (subDetail == null || subDetail.SubDetailId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "子合约明细获取失败";
                        return result;
                    }

                    //获取子合约下所有
                    result = this.businessinvoiceDAL.LoadBySubId(user, invoiceBusiness.SubContractId, invoiceType);
                    if (result.ResultStatus != 0)
                        return result;

                    List<BusinessInvoice> bis = result.ReturnValue as List<BusinessInvoice>;
                    decimal sumNetAmount = bis.Sum(temp => temp.NetAmount);
                    decimal maxNetAmount = sub.SignAmount * (1 + subDetail.MoreOrLess);
                    //if (maxNetAmount < sumNetAmount + invoiceBusiness.NetAmount)
                    //{
                    //    result.ResultStatus = -1;
                    //    result.Message = "开票重量超额";
                    //    return result;
                    //}

                    //新增发票主表
                    int invoiceId = 0;
                    invoice.InvoiceType = (int)invoiceType;
                    invoice.InvoiceStatus = StatusEnum.已录入;
                    Corporation outCorp = UserProvider.Corporations.FirstOrDefault(temp => temp.CorpId == invoice.OutCorpId);
                    if (outCorp == null || outCorp.CorpId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "开票公司信息错误";
                        return result;
                    }
                    invoice.OutCorpName = outCorp.CorpName;

                    Corporation inCorp = UserProvider.Corporations.FirstOrDefault(temp => temp.CorpId == invoice.InCorpId);
                    if (inCorp == null || inCorp.CorpId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "收票公司信息错误";
                        return result;
                    }
                    invoice.InCorpName = inCorp.CorpName;

                    result = invoiceDAL.Insert(user, invoice);
                    if (result.ResultStatus != 0)
                        return result;

                    if (result.ReturnValue == null || !int.TryParse(result.ReturnValue.ToString(), out invoiceId))
                    {
                        result.ResultStatus = -1;
                        result.Message = "发票添加失败";
                        return result;
                    }

                    //新增业务发票表
                    int businessInvoiceId = 0;
                    invoiceBusiness.InvoiceId = invoiceId;
                    result = businessInvoiceDAL.Insert(user, invoiceBusiness);
                    if (result.ResultStatus != 0)
                        return result;

                    if (result.ReturnValue == null || !int.TryParse(result.ReturnValue.ToString(), out businessInvoiceId))
                    {
                        result.ResultStatus = -1;
                        result.Message = "新增发票失败";
                        return result;
                    }

                    //新增业务发票明细
                    StockLogDAL stockLogDAL = new StockLogDAL();
                    StockDAL stockDAL = new StockDAL();
                    foreach (BusinessInvoiceDetail detail in details)
                    {
                        if (detail.NetAmount != 0 && detail.StockId > 0)
                        {
                            //验证库存
                            result = stockDAL.Get(user, detail.StockId);
                            if (result.ResultStatus != 0)
                                return result;
                            Stock stock = result.ReturnValue as Stock;
                            if (stock == null || stock.StockId <= 0)
                            {
                                result.ResultStatus = -1;
                                result.Message = "发票库存获取失败";
                                return result;
                            }

                            //验证库存流水
                            result = stockLogDAL.Get(user, detail.StockLogId);
                            if (result.ResultStatus != 0)
                                return result;

                            StockLog stockLog = result.ReturnValue as StockLog;
                            if (stockLog == null || stockLog.StockLogId <= 0)
                            {
                                result.ResultStatus = -1;
                                result.Message = "新增发票流水获取失败";
                                return result;
                            }

                            //基本验证
                            if (stockLog.StockId != stock.StockId)
                            {
                                result.ResultStatus = -1;
                                result.Message = "库存与库存流水不匹配";
                                return result;
                            }

                            //验证流水合约与发票合约是否相同
                            if (stockLog.SubContractId != invoiceBusiness.SubContractId)
                            {
                                result.ResultStatus = -1;
                                result.Message = "合约与库存流水不匹配";
                                return result;
                            }

                            detail.DetailStatus = StatusEnum.已生效;
                            detail.InvoiceId = invoiceId;
                            detail.BusinessInvoiceId = businessInvoiceId;
                            detail.StockId = stockLog.StockId;
                            detail.StockLogId = stockLog.StockLogId;

                            if (invoice.InvoiceType == (int)InvoiceTypeEnum.SuppleFinalInvoice)
                            {
                                //获取当前流水回执信息
                                result = stockReceiptDetailDAL.LoadByStockLogId(user, stockLog.StockLogId);
                                List<StockReceiptDetail> stockReceiptDetails = result.ReturnValue as List<StockReceiptDetail>;
                                if (stockReceiptDetails == null)
                                {
                                    result.ResultStatus = -1;
                                    result.Message = "当前流水未回执,不能补零";
                                    return result;
                                }

                                decimal sumQtyMiss = stockReceiptDetails.Sum(temp => temp.QtyMiss);
                                detail.IntegerAmount = sumQtyMiss;
                                detail.NetAmount = sumQtyMiss;
                            }
                            //else
                            //{
                            //    detail.IntegerAmount = stockLog.GrossAmount;
                            //    detail.NetAmount = stockLog.NetAmount;
                            //}
                            result = detailDAL.Insert(user, detail);
                            if (result.ResultStatus != 0)
                                return result;
                        }
                    }

                    invoice.InvoiceId = invoiceId;
                    if (result.ResultStatus == 0) result.ReturnValue = invoice;

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                result.ResultStatus = -1;
                result.Message = ex.Message;
            }

            return result;
        }
Пример #39
0
 public DataTable GetTerminals(long LocationId)
 {
     return(InvoiceDAL.GetTerminals(LocationId));
 }
Пример #40
0
        public ResultModel Update(UserModel user, Operate.Model.Invoice invoice, FinanceInvoice fundsInvoice,string bids)
        {
            ResultModel result = new ResultModel();

            try
            {
                FinanceInvoiceDAL fundsInvoiceDAL = new FinanceInvoiceDAL();
                InvoiceDAL invoiceDAL = new InvoiceDAL();

                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
                {

                    //获取财务发票
                    result = fundsInvoiceDAL.Get(user, fundsInvoice.FinanceInvoiceId);
                    if (result.ResultStatus != 0)
                        return result;

                    FinanceInvoice resultFundsInvoice = result.ReturnValue as FinanceInvoice;
                    if (resultFundsInvoice == null || resultFundsInvoice.FinanceInvoiceId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "财务发票获取失败";
                        return result;
                    }

                    //更新财务发票
                    resultFundsInvoice.AssetId = fundsInvoice.AssetId;
                    resultFundsInvoice.IntegerAmount = fundsInvoice.IntegerAmount;
                    resultFundsInvoice.NetAmount = fundsInvoice.NetAmount;
                    resultFundsInvoice.MUId = fundsInvoice.MUId;
                    resultFundsInvoice.VATRatio = fundsInvoice.VATRatio;
                    resultFundsInvoice.VATBala = fundsInvoice.VATBala;

                    result = fundsInvoiceDAL.Update(user, resultFundsInvoice);
                    if (result.ResultStatus != 0)
                        return result;

                    //获取发票
                    result = invoiceDAL.Get(user, resultFundsInvoice.InvoiceId);
                    if (result.ResultStatus != 0)
                        return result;
                    Operate.Model.Invoice resultInvoice = result.ReturnValue as Operate.Model.Invoice;
                    if (resultInvoice == null || resultInvoice.InvoiceId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "发票信息获取失败";
                        return result;
                    }

                    resultInvoice.InvoiceDate = invoice.InvoiceDate;
                    resultInvoice.InvoiceName = invoice.InvoiceName;
                    resultInvoice.InvoiceBala = invoice.InvoiceBala;
                    resultInvoice.CurrencyId = invoice.CurrencyId;
                    resultInvoice.OutCorpId = invoice.OutCorpId;

                    Corporation outCorp = UserProvider.Corporations.FirstOrDefault(temp => temp.CorpId == invoice.OutCorpId);
                    if (outCorp == null || outCorp.CorpId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "开票公司信息错误";
                        return result;
                    }
                    resultInvoice.OutCorpName = outCorp.CorpName;

                    resultInvoice.InCorpId = invoice.InCorpId;
                    Corporation inCorp = UserProvider.Corporations.FirstOrDefault(temp => temp.CorpId == invoice.InCorpId);
                    if (inCorp == null || inCorp.CorpId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "收票公司信息错误";
                        return result;
                    }
                    resultInvoice.InCorpName = inCorp.CorpName;
                    resultInvoice.Memo = invoice.Memo;

                    result = invoiceDAL.Update(user, resultInvoice);
                    if (result.ResultStatus != 0)
                        return result;

                    if (!string.IsNullOrEmpty(bids))
                    {
                        FinBusInvAllotDAL finBusInvAllotDAL = new FinBusInvAllotDAL();
                        FinBusInvAllotDetailDAL finBusInvAllotDetailDAL = new FinBusInvAllotDetailDAL();
                        result = finBusInvAllotDetailDAL.GetAllotIdByFid(user, fundsInvoice.FinanceInvoiceId);
                        if (result.ResultStatus != 0)
                            return result;

                        int allotId = (int)result.ReturnValue;

                        result = finBusInvAllotDAL.Get(user, allotId);
                        if (result.ResultStatus != 0)
                            return result;

                        FinBusInvAllot finBusInvAllot = result.ReturnValue as FinBusInvAllot;
                        finBusInvAllot.AllotBala = invoice.InvoiceBala;

                        result = finBusInvAllotDAL.Update(user, finBusInvAllot);
                        if (result.ResultStatus != 0)
                            return result;

                        result = finBusInvAllotDetailDAL.InvalidAll(user, allotId);
                        if (result.ResultStatus != 0)
                            return result;

                        foreach (string businessInvoiceId in bids.Split(','))
                        {
                            result = invoiceDAL.GetByBussinessInvoiceId(user, Convert.ToInt32(businessInvoiceId));
                            if (result.ResultStatus != 0)
                                return result;

                            Operate.Model.Invoice busInvoice = result.ReturnValue as Operate.Model.Invoice;

                            result = finBusInvAllotDetailDAL.Insert(user, new FinBusInvAllotDetail()
                            {
                                AllotId = allotId,
                                BusinessInvoiceId = Convert.ToInt32(businessInvoiceId),
                                FinanceInvoiceId = fundsInvoice.FinanceInvoiceId,
                                AllotBala = busInvoice.InvoiceBala,
                                DetailStatus = StatusEnum.已生效
                            });
                            if (result.ResultStatus != 0)
                                return result;
                        }

                    }

                    if (result.ResultStatus == 0)
                        result.ReturnValue = invoice.InvoiceId;

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                result.ResultStatus = -1;
                result.Message = ex.Message;
            }

            return result;
        }
Пример #41
0
 public DataTable GetServiceTax(DateTime InvoiceDate)
 {
     return(InvoiceDAL.GetServiceTax(InvoiceDate));
 }
Пример #42
0
        public ResultModel Goback(UserModel user, int businessInvoiceId)
        {
            ResultModel result = new ResultModel();

            try
            {
                BusinessInvoiceDAL businessInvoiceDAL = new BusinessInvoiceDAL();
                InvoiceDAL invoiceDAL = new InvoiceDAL();

                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    //获取财务票
                    result = businessInvoiceDAL.Get(user, businessInvoiceId);
                    if (result.ResultStatus != 0)
                        return result;

                    BusinessInvoice businessInvoice = result.ReturnValue as BusinessInvoice;
                    if (businessInvoice == null || businessInvoice.BusinessInvoiceId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "发票验证失败";
                        return result;
                    }

                    //获取发票
                    result = invoiceDAL.Get(user, businessInvoice.InvoiceId);
                    if (result.ResultStatus != 0)
                        return result;
                    Operate.Model.Invoice invoice = result.ReturnValue as Operate.Model.Invoice;
                    if (invoice == null || invoice.InvoiceId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "发票获取失败";
                        return result;
                    }

                    //撤返发票
                    result = invoiceDAL.Goback(user, invoice);
                    if (result.ResultStatus != 0)
                        return result;

                    //工作流任务关闭
                    DataSourceDAL sourceDAL = new DataSourceDAL();
                    result = sourceDAL.SynchronousStatus(user, invoice);
                    if (result.ResultStatus != 0)
                        return result;

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                result.ResultStatus = -1;
                result.Message = ex.Message;
            }

            return result;
        }