Exemple #1
0
        protected void lbtnAddVouchar_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                iBiz.FinPro.Transactions.Groups   bTransGroup = new iBiz.FinPro.Transactions.Groups();
                iBiz.FinPro.Transactions.Transact bTrans      = new iBiz.FinPro.Transactions.Transact();
                iBiz.FinPro.Transactions.Transact.objTransaction objTrans;
                iBiz.FinPro.Transactions.Groups.objGroup         objTransGroup = new iBiz.FinPro.Transactions.Groups.objGroup();
                iBiz.FinPro.Accounts bAcc = new iBiz.FinPro.Accounts();

                int     defaultDept     = Convert.ToInt32(ddlDefautlDept.SelectedValue);
                int     itemsCount      = 0;
                decimal totalDebit      = 0;
                decimal totalCredit     = 0;
                decimal uTotalDebit     = 0;
                decimal uTotalCredit    = 0;
                bool    hasNoDepartment = false;

                int finYear = DateTime.Now.Year;

                if (radVoucharDate.SelectedDate.Value.Month < 6)
                {
                    finYear = finYear - 1;
                }

                DateTime financialYear = Convert.ToDateTime("07/01/" + finYear.ToString());

                bTrans.Delete_Untagged(thisUser);

                if (rptVoucherItems.Items.Count > 0)
                {
                    foreach (RepeaterItem item in rptVoucherItems.Items)
                    {
                        foreach (Control ctrlItem in item.Controls)
                        {
                            if (ctrlItem is HiddenField)
                            {
                                if (ctrlItem.ClientID.ToLower().Contains("hfitemno"))
                                {
                                    string      itemNo, transId, showOff, accountId, deptId, description, debitAmount, creditAmount, additionalTransId;
                                    HiddenField hfINo = (HiddenField)ctrlItem;
                                    //DropDownList ddlAccounts = (DropDownList)Form.FindControl(hfINo.UniqueID.Replace("hfItemNo", "ddlAccounts"));
                                    RadComboBox  ddlAccounts         = (RadComboBox)Form.FindControl(hfINo.UniqueID.Replace("hfItemNo", "ddlAccounts"));
                                    DropDownList ddlDepts            = (DropDownList)Form.FindControl(hfINo.UniqueID.Replace("hfItemNo", "ddlDept"));
                                    TextBox      tbDescription       = (TextBox)Form.FindControl(hfINo.UniqueID.Replace("hfItemNo", "tbDescription"));
                                    TextBox      tbDebitAmount       = (TextBox)Form.FindControl(hfINo.UniqueID.Replace("hfItemNo", "tbDebitAmount"));
                                    TextBox      tbCreditAmount      = (TextBox)Form.FindControl(hfINo.UniqueID.Replace("hfItemNo", "tbCreditAmount"));
                                    HiddenField  hfTransId           = (HiddenField)Form.FindControl(hfINo.UniqueID.Replace("hfItemNo", "hfTransID"));
                                    HiddenField  hfAdditionalTransId = (HiddenField)Form.FindControl(hfINo.UniqueID.Replace("hfItemNo", "hfAdditionalTransId"));
                                    CheckBox     chkShowOff          = (CheckBox)Form.FindControl(hfINo.UniqueID.Replace("hfItemNo", "chkShowOff"));

                                    iBiz.FinPro.Accounts.objAccount objAcc = new iBiz.FinPro.Accounts.objAccount();


                                    itemNo            = hfINo.Value;
                                    transId           = hfTransId.Value;
                                    accountId         = ddlAccounts.SelectedValue;
                                    deptId            = ddlDepts.SelectedValue;
                                    description       = tbDescription.Text;
                                    debitAmount       = tbDebitAmount.Text;
                                    creditAmount      = tbCreditAmount.Text;
                                    additionalTransId = hfAdditionalTransId.Value;
                                    showOff           = Convert.ToInt32(chkShowOff.Checked).ToString();


                                    decimal transAmount = 0;
                                    bool    isDebit     = true;

                                    if (debitAmount.Trim().Length > 0 && debitAmount.Trim() != "0")
                                    {
                                        decimal.TryParse(debitAmount, out transAmount);
                                    }
                                    else
                                    {
                                        decimal.TryParse(creditAmount, out transAmount);
                                        isDebit = false;
                                    }


                                    if (transAmount > 0 && transId == "0")
                                    {
                                        if (hasNoDepartment || (Convert.ToInt32(deptId) <= 0 && defaultDept == 0))
                                        {
                                            hasNoDepartment = true;
                                        }


                                        //Check for Additional Trans

                                        if (!string.IsNullOrEmpty(additionalTransId))
                                        {
                                            if (additionalTransId != "0")
                                            {
                                                iBiz.FinPro.Modules.AdditionalTransactions bAdditionalTrans = new iBiz.FinPro.Modules.AdditionalTransactions();
                                                bAdditionalTrans.Do_Transactions_For_Predefined(0, Convert.ToInt32(additionalTransId), transAmount, "Description", transAmount, moduleId, financialYear, radVoucharDate.SelectedDate.Value, thisUser, Convert.ToInt32(deptId));
                                            }
                                        }


                                        if (Convert.ToInt32(accountId) > 0)
                                        {
                                            objTrans = new iBiz.FinPro.Transactions.Transact.objTransaction();

                                            objTrans.transAmount = transAmount;

                                            if (isDebit)
                                            {
                                                objTrans.transDrAccount = Convert.ToInt32(accountId);
                                                totalDebit += transAmount;
                                            }
                                            else
                                            {
                                                objTrans.transCrAccount = Convert.ToInt32(accountId);
                                                totalCredit            += transAmount;
                                            }

                                            objAcc = bAcc.Select(Convert.ToInt32(accountId));

                                            if (objAcc.accountSystemIndex == 2)
                                            {
                                                objTrans.transSystemRestrict = true;
                                            }
                                            else
                                            {
                                                if (objAcc.accountSystemIndex == 1 && chkShowOff.Checked == false)
                                                {
                                                    objTrans.transSystemRestrict = true;
                                                }
                                                else if (objAcc.accountSystemIndex == 1 && chkShowOff.Checked == true && isOfficial == 1)
                                                {
                                                    if (isDebit)
                                                    {
                                                        uTotalDebit += transAmount;
                                                    }
                                                    else
                                                    {
                                                        uTotalCredit += transAmount;
                                                    }
                                                }
                                                else
                                                {
                                                    objTrans.transSystemRestrict = false;
                                                }
                                            }


                                            if (isDebit)
                                            {
                                                if (objTrans.transSystemRestrict)
                                                {
                                                    uTotalDebit += transAmount;
                                                }
                                            }
                                            else
                                            {
                                                if (objTrans.transSystemRestrict)
                                                {
                                                    uTotalCredit += transAmount;
                                                }
                                            }



                                            objTrans.transCreatedBy   = thisUser;
                                            objTrans.transCreatedOn   = DateTime.Now;
                                            objTrans.transGroupID     = 0;
                                            objTrans.transIsCompound  = true;
                                            objTrans.transNarration   = description;
                                            objTrans.transStatus      = 1;
                                            objTrans.transSystemIndex = (isOfficial == 1) ? 2 : 1;
                                            objTrans.deptId           = Convert.ToInt32(deptId);

                                            if (deptId == "0")
                                            {
                                                objTrans.deptId = defaultDept;
                                            }

                                            objTrans.transType      = 1;
                                            objTrans.transUpdatedBy = thisUser;
                                            objTrans.transUpdatedOn = DateTime.Now;

                                            bTrans.Add(objTrans);

                                            itemsCount++;
                                        }
                                    }
                                    else if (transId != "0")
                                    {
                                        if (hasNoDepartment || (Convert.ToInt32(deptId) <= 0 && defaultDept == 0))
                                        {
                                            hasNoDepartment = true;
                                        }

                                        if (transAmount <= 0)
                                        {
                                            // Delete existing trans
                                            if (iBiz.FinPro.Rights.edit_vouchar)
                                            {
                                                bTrans.Delete(Convert.ToInt32(transId));
                                            }
                                        }
                                        else
                                        {
                                            // Update Trans
                                            objTrans = new iBiz.FinPro.Transactions.Transact.objTransaction();
                                            objTrans = bTrans.Select(Convert.ToInt32(transId));

                                            if (objTrans != null)
                                            {
                                                objTrans.transAmount = transAmount;

                                                if (isDebit)
                                                {
                                                    objTrans.transDrAccount = Convert.ToInt32(accountId);
                                                    objTrans.transCrAccount = null;
                                                    totalDebit += transAmount;
                                                }
                                                else
                                                {
                                                    objTrans.transCrAccount = Convert.ToInt32(accountId);
                                                    objTrans.transDrAccount = null;
                                                    totalCredit            += transAmount;
                                                }

                                                objAcc = bAcc.Select(Convert.ToInt32(accountId));

                                                if (objAcc.accountSystemIndex == 2)
                                                {
                                                    objTrans.transSystemRestrict = true;
                                                }
                                                else
                                                {
                                                    if (objAcc.accountSystemIndex == 1 && chkShowOff.Checked == false)
                                                    {
                                                        objTrans.transSystemRestrict = true;
                                                    }
                                                    else if (objAcc.accountSystemIndex == 1 && chkShowOff.Checked == true && isOfficial == 1)
                                                    {
                                                        if (isDebit)
                                                        {
                                                            uTotalDebit += transAmount;
                                                        }
                                                        else
                                                        {
                                                            uTotalCredit += transAmount;
                                                        }
                                                    }
                                                    else
                                                    {
                                                        objTrans.transSystemRestrict = false;
                                                    }
                                                }

                                                if (isDebit)
                                                {
                                                    if (objTrans.transSystemRestrict)
                                                    {
                                                        uTotalDebit += transAmount;
                                                    }
                                                }
                                                else
                                                {
                                                    if (objTrans.transSystemRestrict)
                                                    {
                                                        uTotalCredit += transAmount;
                                                    }
                                                }

                                                objTrans.transNarration   = description;
                                                objTrans.transStatus      = 1;
                                                objTrans.transSystemIndex = (isOfficial == 1) ? 2 : 1;

                                                objTrans.transType      = 1;
                                                objTrans.transUpdatedBy = thisUser;
                                                objTrans.transUpdatedOn = DateTime.Now;
                                                objTrans.deptId         = Convert.ToInt32(deptId);
                                                if (deptId == "0")
                                                {
                                                    objTrans.deptId = defaultDept;
                                                }

                                                bTrans.Update(objTrans);
                                                itemsCount++;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    if (itemsCount > 0 && totalDebit == totalCredit && uTotalCredit == uTotalDebit)
                    {
                        int groupID = 0;


                        if (Request.QueryString["gid"] != null)
                        {
                            if (!hasNoDepartment)
                            {
                                groupID       = Convert.ToInt32(Request.QueryString["gid"]);
                                objTransGroup = bTransGroup.Select(groupID);

                                if (objTransGroup != null)
                                {
                                    objTransGroup.transGroupCreatedOn           = radVoucharDate.SelectedDate.Value;
                                    objTransGroup.transGroupTitle               = tbDescription.Text.Trim();
                                    objTransGroup.transGroupTotalAmount         = totalCredit;
                                    objTransGroup.transTransCount               = itemsCount;
                                    objTransGroup.transGroupOfficialTotalAmount = uTotalDebit;
                                    objTransGroup.transGroupRefId               = tbRefId.Text;
                                    objTransGroup.transCField1 = tbCustomValue1.Text;
                                    objTransGroup.transCField2 = tbCustomValue2.Text;
                                    objTransGroup.transCField3 = tbCustomValue3.Text;
                                    objTransGroup.transCField4 = tbCustomValue4.Text;
                                    bTransGroup.Update(objTransGroup);

                                    iBiz.FinPro.Transactions.Attachments bTransAtt = new iBiz.FinPro.Transactions.Attachments();

                                    if (groupID > 0)
                                    {
                                        if (radSyncAttachments.UploadedFiles.Count > 0)
                                        {
                                            for (int i = 0; i < radSyncAttachments.UploadedFiles.Count; i++)
                                            {
                                                string guid    = Guid.NewGuid().ToString();
                                                string fileExt = radSyncAttachments.UploadedFiles[i].GetExtension();
                                                radSyncAttachments.UploadedFiles[i].SaveAs(Server.MapPath("~/Attachments/") + guid + fileExt, true);

                                                iBiz.FinPro.Transactions.Attachments.objAttachment objTranAtt = new iBiz.FinPro.Transactions.Attachments.objAttachment();
                                                objTranAtt.attachmentMaskedFileName   = guid + fileExt;
                                                objTranAtt.attachmentOriginalFileName = radSyncAttachments.UploadedFiles[i].FileName;
                                                objTranAtt.transGroupID = groupID;
                                                bTransAtt.Add(objTranAtt);
                                            }
                                        }
                                    }

                                    bTrans.Update_Group(thisUser, 0, groupID);
                                    bTrans.Update_Group(thisUser, -1, groupID);

                                    rnNotify.Show("Vouchar has been Updated.");
                                }
                            }
                            else
                            {
                                bTrans.Delete_Untagged(thisUser);
                                rnNotify.Show("You must assign department to all items.");
                            }
                        }
                        else
                        {
                            if (!hasNoDepartment)
                            {
                                string fullVoucharNo = "N/A";

                                objTransGroup.transGroupCreatedBy           = thisUser;
                                objTransGroup.transGroupCreatedOn           = radVoucharDate.SelectedDate.Value;
                                objTransGroup.transGroupForeNumber          = bTransGroup.New_Group_Fore_Number(moduleId, short_Title, objTransGroup.transGroupCreatedOn);
                                objTransGroup.transGroupPrefixNo            = moduleId;
                                objTransGroup.transGroupPrefixString        = short_Title;
                                objTransGroup.transGroupStatus              = 1;
                                objTransGroup.transGroupTitle               = tbDescription.Text.Trim();
                                objTransGroup.transGroupTotalAmount         = totalCredit;
                                objTransGroup.transTransCount               = itemsCount;
                                objTransGroup.transGroupIsOfficial          = isOfficial;
                                objTransGroup.transGroupOfficialTotalAmount = uTotalDebit;
                                objTransGroup.transGroupRefId               = tbRefId.Text;
                                objTransGroup.transCField1 = tbCustomValue1.Text;
                                objTransGroup.transCField2 = tbCustomValue2.Text;
                                objTransGroup.transCField3 = tbCustomValue3.Text;
                                objTransGroup.transCField4 = tbCustomValue4.Text;

                                fullVoucharNo = objTransGroup.transGroupPrefixNo.ToString() + short_Title + objTransGroup.transGroupForeNumber.ToString();
                                groupID       = bTransGroup.Add(objTransGroup).Value;

                                // Upload Attachments
                                iBiz.FinPro.Transactions.Attachments bTransAtt = new iBiz.FinPro.Transactions.Attachments();

                                if (groupID > 0)
                                {
                                    if (radSyncAttachments.UploadedFiles.Count > 0)
                                    {
                                        for (int i = 0; i < radSyncAttachments.UploadedFiles.Count; i++)
                                        {
                                            string guid    = Guid.NewGuid().ToString();
                                            string fileExt = radSyncAttachments.UploadedFiles[i].GetExtension();
                                            radSyncAttachments.UploadedFiles[i].SaveAs(Server.MapPath("~/Attachments/") + guid + fileExt, true);

                                            iBiz.FinPro.Transactions.Attachments.objAttachment objTranAtt = new iBiz.FinPro.Transactions.Attachments.objAttachment();
                                            objTranAtt.attachmentMaskedFileName   = guid + fileExt;
                                            objTranAtt.attachmentOriginalFileName = radSyncAttachments.UploadedFiles[i].FileName;
                                            objTranAtt.transGroupID = groupID;
                                            bTransAtt.Add(objTranAtt);
                                        }
                                    }
                                }

                                bTrans.Update_Group(thisUser, 0, groupID);
                                bTrans.Update_Group(thisUser, -1, groupID);


                                pnlActions.Visible = false;
                                rnNotify.Show("Vouchar has been Created.<br /><br />Vouchar No. is " + fullVoucharNo + "<br /><br />");


                                // Look for Additional Items
                                iBiz.FinPro.Modules.AdditionalTransactions bAT = new iBiz.FinPro.Modules.AdditionalTransactions();
                                ControlCollection ctrlAdditionalItems          = rptVoucherItems.Controls[rptVoucherItems.Controls.Count - 1].Controls;

                                foreach (Control ctrlItem in ctrlAdditionalItems)
                                {
                                    if (ctrlItem.ClientID.Contains("rptAdditionalItems"))
                                    {
                                        Repeater rptAdditionalItems = (Repeater)ctrlItem;

                                        foreach (RepeaterItem item in rptAdditionalItems.Items)
                                        {
                                            foreach (Control ctrlHFID in item.Controls)
                                            {
                                                if (ctrlHFID is HiddenField)
                                                {
                                                    if (ctrlHFID.ClientID.Contains("hfAdditionalTransId"))
                                                    {
                                                        HiddenField hfAdditionalItem        = (HiddenField)ctrlHFID;
                                                        TextBox     tbAdditionalDescription = (TextBox)Form.FindControl(hfAdditionalItem.UniqueID.Replace("hfAdditionalTransId", "tbAdditionalDescription"));
                                                        TextBox     tbAdditionalAmount      = (TextBox)Form.FindControl(hfAdditionalItem.UniqueID.Replace("hfAdditionalTransId", "tbAddiotionalAmount"));

                                                        decimal additionalAmount;

                                                        if (decimal.TryParse(tbAdditionalAmount.Text.Trim().Replace("%", ""), out additionalAmount))
                                                        {
                                                            bAT.Do_Transactions(groupID, Convert.ToInt32(hfAdditionalItem.Value), additionalAmount, tbAdditionalDescription.Text, totalDebit, radVoucharDate.SelectedDate.Value, thisUser);
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            else
                            {
                                bTrans.Delete_Untagged(thisUser);
                                rnNotify.Show("You must assign department to all items.");
                            }
                        }
                    }
                    else
                    {
                        //imbalanced Debit and Credit
                        bTrans.Delete_Untagged(thisUser);

                        if (itemsCount == 0)
                        {
                            bTrans.Delete_Untagged(thisUser);
                            rnNotify.Show("No valid transaction found.");
                        }
                        else
                        {
                            bTrans.Delete_Untagged(thisUser);
                            rnNotify.Show("Debit and Credit sides are not equal.");
                        }
                    }
                }
            }
        }
        protected void Balance_Fabric_For_Sales()
        {
            iDB.Communicate dbComm = new iDB.Communicate();
            iBiz.FinPro.Transactions.Groups                  bTransG   = new iBiz.FinPro.Transactions.Groups();
            iBiz.FinPro.Transactions.Groups.objGroup         objTransG = new iBiz.FinPro.Transactions.Groups.objGroup();
            iBiz.FinPro.Transactions.Transact                bTrans    = new iBiz.FinPro.Transactions.Transact();
            iBiz.FinPro.Transactions.Transact.objTransaction objTrans  = new iBiz.FinPro.Transactions.Transact.objTransaction();
            IDataReader idr = dbComm.SelectCMD("Select transGroupID from fin_Transactions where transCrAccount=16 order by transGroupID desc");

            if (idr != null)
            {
                while (idr.Read())
                {
                    int     transGroupId    = Convert.ToInt32(idr["transGroupId"]);
                    decimal officialTotal   = 0;
                    decimal unofficialTotal = 0;


                    IDataReader idrr = dbComm.SelectCMD(string.Format("select IsNull(sum(transAmount), 0) from (select distinct(transAmount) from fin_Transactions where transGroupID={0} and not transCrAccount=16 and transSystemIndex=2) as resultBox", transGroupId));

                    if (idrr != null)
                    {
                        while (idrr.Read())
                        {
                            officialTotal = Convert.ToDecimal(idrr[0]);
                        }
                    }



                    idrr = dbComm.SelectCMD(string.Format("select IsNull(sum(transAmount), 0) from (select distinct(transAmount) from fin_Transactions where transGroupID={0} and not transCrAccount=16 and transSystemIndex=1) as resultBox", transGroupId));


                    if (idrr != null)
                    {
                        while (idrr.Read())
                        {
                            unofficialTotal  = Convert.ToDecimal(idrr[0]);
                            unofficialTotal += officialTotal;
                        }
                    }


                    idrr = dbComm.SelectCMD(string.Format("select * from fin_Transactions where transGroupID={0} and transCrAccount=16", transGroupId));


                    if (idrr != null)
                    {
                        while (idrr.Read())
                        {
                            int transID = Convert.ToInt32(idrr["transID"]);

                            objTrans = new iBiz.FinPro.Transactions.Transact.objTransaction();
                            objTrans = bTrans.Select(transID);

                            if (objTrans != null)
                            {
                                objTrans.transSystemIndex = 1;
                                objTrans.transAmount      = unofficialTotal;
                                bTrans.Update(objTrans);
                            }

                            objTrans = bTrans.Select(transID);
                            if (objTrans != null)
                            {
                                iBiz.FinPro.Transactions.Transact.objTransaction objTranss = new iBiz.FinPro.Transactions.Transact.objTransaction();

                                objTrans.transSystemIndex    = 2;
                                objTrans.transAmount         = officialTotal;
                                objTrans.transSystemRestrict = true;

                                objTranss.transParticipantID = objTrans.transParticipantID;
                                objTranss.transCreatedOn     = objTrans.transCreatedOn;

                                bTrans.Add(objTrans);


                                if (objTranss.transParticipantID.Value == 8)
                                {
                                    objTranss.transDrAccount = 84;
                                }
                                else if (objTranss.transParticipantID.Value == 13)
                                {
                                    objTranss.transDrAccount = 94;
                                }
                                else
                                {
                                    objTranss.transDrAccount = null;
                                }


                                objTranss.transAmount    = officialTotal;
                                objTranss.transCrAccount = null;
                                objTranss.transCreatedBy = 1;
                                objTranss.transCreatedOn = DateTime.Now;

                                objTranss.transGroupID        = transGroupId;
                                objTranss.transNarration      = "Inventory Sold";
                                objTranss.transStatus         = 1;
                                objTranss.transSystemIndex    = 2;
                                objTranss.transSystemRestrict = true;
                                objTranss.transType           = 44;
                                objTranss.transUpdatedBy      = 1;
                                objTranss.transUpdatedOn      = DateTime.Now;
                                bTrans.Add(objTranss);
                            }
                        }
                    }


                    objTransG = new iBiz.FinPro.Transactions.Groups.objGroup();
                    objTransG = bTransG.Select(transGroupId);

                    if (objTransG != null)
                    {
                        objTransG.transGroupTotalAmount         = unofficialTotal;
                        objTransG.transGroupOfficialTotalAmount = officialTotal;
                        bTransG.Update(objTransG);
                    }
                }
            }
        }