public string DailySalaryVoucherMasterGetMax(decimal voucherTypeId)
        {
            string max = "0";

            try
            {
                max = SpMaster.DailySalaryVoucherMasterGetMax(voucherTypeId);
            }
            catch (Exception ex)
            {
                MessageBox.Show("BR1:" + ex.Message, "OpenMiracle", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            return(max);
        }
Esempio n. 2
0
        public string SaveDailySalaryVoucher(string dailyMasterId, string voucherTypeId, string voucherNo, string date,
                                             string salaryDate, string cash, string narration, string totalAmount, string details)
        {
            string message = string.Empty;

            try
            {
                decimal       decDailyVoucherTypeId = 0;
                VoucherTypeSP spVoucherType         = new VoucherTypeSP();
                DataTable     dtblVouchetType       = new DataTable();
                dtblVouchetType = spVoucherType.VoucherTypeSelectionComboFill("Daily Salary Voucher");
                int    nCount      = dtblVouchetType.Rows.Count;
                string voucherType = string.Empty;
                if (nCount == 1)
                {
                    voucherType           = dtblVouchetType.Rows[0].ItemArray[0].ToString();
                    decDailyVoucherTypeId = decimal.Parse(voucherType);
                }

                string strEployeeNames = string.Empty;
                DailySalaryVoucherMasterInfo  infoMaster  = new DailySalaryVoucherMasterInfo();
                DailySalaryVoucherMasterSP    spMaster    = new DailySalaryVoucherMasterSP();
                DailySalaryVoucherDetailsInfo infoDetails = new DailySalaryVoucherDetailsInfo();
                DailySalaryVoucherDetailsSP   spDetails   = new DailySalaryVoucherDetailsSP();

                //-------------In multi user case check whether salary is paying for the same persone--------------//
                List <Dictionary <string, object> > detailsData = JsonConvert.DeserializeObject <List <Dictionary <string, object> > >(details);
                int      inCounts     = detailsData.Count;
                int      incont       = 0;
                decimal  decVal       = 0;
                DateTime dtSalaryDate = Convert.ToDateTime(salaryDate);
                for (int i = 0; i < inCounts; i++)
                {
                    decVal = Convert.ToDecimal(detailsData[i]["employeeId"].ToString());
                    if (spDetails.CheckWhetherDailySalaryAlreadyPaid(decVal, dtSalaryDate) != "0")
                    {
                        strEployeeNames = strEployeeNames + spDetails.CheckWhetherDailySalaryAlreadyPaid(decVal, dtSalaryDate) + ",";
                        foreach (char ch in strEployeeNames)
                        {
                            if (ch == ',')
                            {
                                incont++;
                            }
                        }
                        if (incont == 15)
                        {
                            incont          = 0;
                            strEployeeNames = strEployeeNames + Environment.NewLine;
                        }
                    }
                }
                if (spDetails.CheckWhetherDailySalaryAlreadyPaid(decVal, dtSalaryDate) != "0")
                {
                    message = "Salary already paid for - " + " " + strEployeeNames;
                }
                else
                {
                    DateTime dtDate = Convert.ToDateTime(date);
                    if (isAutomatic)
                    {
                        infoMaster.VoucherNo = strVoucherNo;
                    }
                    else
                    {
                        infoMaster.VoucherNo = voucherNo;
                    }
                    infoMaster.Date        = dtDate;
                    infoMaster.SalaryDate  = dtSalaryDate;
                    infoMaster.LedgerId    = Convert.ToDecimal(cash);
                    infoMaster.Narration   = narration ?? string.Empty;
                    infoMaster.TotalAmount = Convert.ToDecimal(totalAmount);
                    infoMaster.Extra1      = string.Empty; // Fields not in design//
                    infoMaster.Extra2      = string.Empty; // Fields not in design//
                    if (isAutomatic)
                    {
                        infoMaster.InvoiceNo = strInvoiceNo;
                    }
                    else
                    {
                        infoMaster.InvoiceNo = voucherNo;
                    }
                    infoMaster.SuffixPrefixId  = 0;//decDailySuffixPrefixId;
                    infoMaster.VoucherTypeId   = decDailyVoucherTypeId;
                    infoMaster.FinancialYearId = PublicVariables._decCurrentFinancialYearId;

                    int inval   = 0;
                    int inCount = detailsData.Count;
                    for (int i = 0; i < inCount; i++)
                    {
                        if (detailsData[i]["status"].ToString() == "paid")
                        {
                            inval++;
                        }
                    }
                    if (inval >= 0)
                    {
                        decimal decMasterId         = 0;
                        string  strUpdatedVoucherNo = string.Empty;
                        string  strUpdatedInvoiceNo = string.Empty;
                        //-------------checks Voucher No. repeating in Multi user case----------//
                        DataTable dtbl = new DataTable();
                        dtbl = spMaster.DailySalaryVoucherMasterAddWithIdentity(infoMaster, true);
                        foreach (DataRow dr in dtbl.Rows)
                        {
                            decMasterId         = Convert.ToDecimal(dr.ItemArray[0].ToString());
                            strUpdatedVoucherNo = dr.ItemArray[1].ToString();
                            strUpdatedInvoiceNo = dr.ItemArray[2].ToString();
                        }
                        if (!isAutomatic)
                        {
                            strVoucherNo = voucherNo;
                        }
                        if (isAutomatic)
                        {
                            if (Convert.ToDecimal(strUpdatedVoucherNo) != Convert.ToDecimal(strVoucherNo))
                            {
                                message      = "Voucher number changed from  " + strInvoiceNo + "  to  " + strUpdatedInvoiceNo;
                                strVoucherNo = strUpdatedVoucherNo.ToString();
                                strInvoiceNo = strUpdatedInvoiceNo;
                            }
                        }
                        //-------------------------------------//
                        LedgerPostingForDailySalary(Convert.ToDecimal(cash), totalAmount, decDailyVoucherTypeId, voucherNo, date);

                        infoDetails.DailySalaryVocherMasterId = decMasterId;
                        infoDetails.Extra1 = string.Empty; // Fields not in design//
                        infoDetails.Extra2 = string.Empty; // Fields not in design//
                        int inRowCount = detailsData.Count;
                        for (int i = 0; i < inRowCount; i++)
                        {
                            if (detailsData[i]["employeeId"].GetType().Name != "JObject" && detailsData[i]["employeeId"].ToString() != string.Empty)
                            {
                                infoDetails.EmployeeId = Convert.ToDecimal(detailsData[i]["employeeId"].ToString());
                            }
                            if (detailsData[i]["dailyWage"].GetType().Name != "JObject" && detailsData[i]["dailyWage"].ToString() != string.Empty)
                            {
                                infoDetails.Wage = Convert.ToDecimal(detailsData[i]["dailyWage"].ToString());
                            }
                            if (detailsData[i]["status"].GetType().Name != "JObject" && detailsData[i]["status"].ToString() == "paid")
                            {
                                infoDetails.Status = detailsData[i]["status"].ToString();
                            }

                            if (detailsData[i]["status"].ToString() == "paid" && detailsData[i]["masterId"].ToString() == string.Empty)
                            {
                                infoDetails.DailySalaryVocherMasterId = decMasterId;
                                spDetails.DailySalaryVoucherDetailsAdd(infoDetails);
                            }
                        }
                    }
                    else
                    {
                        strVoucherNo = spMaster.DailySalaryVoucherMasterGetMax(Convert.ToDecimal(decDailyVoucherTypeId));
                        message      = "Can't save without at least one employee";
                    }
                }
            }
            catch (Exception ex)
            {
                message = "DSV11:" + ex.Message;
            }
            return(message);
        }