Beispiel #1
0
        private void createGeneralTask(int OAid)
        {
            DataAccess     dba        = new DataAccess();
            SqlConnection  conn       = null;
            SqlCommand     command    = null;
            SqlTransaction trans      = null;
            int            wfDetId    = 0;
            int            gtId       = 0;
            string         retmessage = "";
            string         report     = dllFileType.SelectedItem.ToString();

            if (report == "Other")
            {
                report = txtDesc.Text;
            }
            int branchid = Claim.GetBranchID(WfId, SubProcessId);

            using (conn = dba.dxConnection)
            {
                conn.Open();
                trans               = conn.BeginTransaction();
                command             = conn.CreateCommand();
                command.Transaction = trans;
                Doxess.Web.WorkFlow.Process.Process dxProcess = new Doxess.Web.WorkFlow.Process.Process();
                wfDetId = dxProcess.wfTaskCreate(ref retmessage, command, WfId, 25099, -1, branchid, OAid, "Generic task - " + report, "Generic task", "", -1, -1, SubProcessId);
                if (wfDetId > 0)
                {
                    dba.dxAddParameter("@wfDetId", wfDetId);
                    dba.dxAddParameter("@Details", "Report '" + report + "' has been uploaded - please review");
                    dba.dxAddParameter("@Response", "");
                    dba.dxAddParameter("@IindexId", 0);
                    dba.dxAddParameter("@id", SqlDbType.Int);
                    gtId = dba.dxExecuteSP("AddGeneralTask");
                    if (gtId < 1)
                    {
                        retmessage = "error adding general task";
                    }
                }
                if ((gtId > 0) && (retmessage.Equals("")))
                {
                    trans.Commit();
                }
                else
                {
                    trans.Rollback();
                    this.lblmsg.Text = retmessage;
                    return;
                }
            }
        }
Beispiel #2
0
        public string GenerateInvoiceAndTask(int POId)
        {
            try
            {
                string strDefCulZone = Global.DefCulZone();

                DataAccess dba = new DataAccess();
                using (SqlConnection conn = dba.dxConnection)
                {
                    conn.Open();
                    SqlTransaction trans   = conn.BeginTransaction();
                    SqlCommand     command = conn.CreateCommand();
                    command.Transaction = trans;

                    string message = string.Empty;
                    int    claimId = 0;

                    claimId      = dba.dxGetIntData("select projid from schedule where schid=" + schId);
                    SubProcessId = dba.dxGetIntData("select subprocessid from schedule where schid=" + schId);

                    ////string claimNo = this.ddlProject.SelectedItem.Text.Trim();

                    SmartFlowLite.APInvoice inv = null;

                    // Task variables
                    int nextActionID      = 22854; //task no this goes to
                    int assignedAccountId = 0;     //branch id
                    int assignedUserId    = 0;     //user id

                    if ((this.SubProcessId == 1) || (this.SubProcessId == 2))
                    {
                        assignedUserId    = WorkFlow.BLL.Invoice.APInvoice.GetPMforClaims(this.WfId, this.SubProcessId);
                        assignedAccountId = Claim.GetBranchID(this.WfId, SubProcessId);
                    }



                    Doxess.Web.WorkFlow.Process.Process dxProcess = new Doxess.Web.WorkFlow.Process.Process();

                    dba.dxAddParameter("@POId", POId);
                    int VendorId   = dba.dxGetIntData("Select VendorId from PurchaseOrders where POId = @POId");
                    int CostCodeId = dba.dxGetIntData("Select defcostcode from vendors where vendorid =" + VendorId);

                    // Add new invoice record
                    inv             = new SmartFlowLite.APInvoice();
                    inv.InvoiceDate = DateTime.Parse(this.txtInvoiceDate.Text);
                    inv.Amount      = Math.Round(Convert.ToDecimal(this.txtAmount.Text), 2);
                    inv.GSTAmount   = Math.Round(Convert.ToDecimal(this.txtHST.Text), 2);

                    //inv.setProvincialTaxField(ref inv, SelectedVendor, SelectedBranch, Math.Round(Convert.ToDecimal(this.txtPSTAmt.Text), 2));

                    inv.TotalAmount   = Math.Round((inv.Amount + inv.GSTAmount + inv.PSTAmount + inv.QSTAmount), 2);
                    inv.ClaimId       = claimId;
                    inv.InvoiceNo     = this.txtInvoiceNumber.Text.Trim();
                    inv.PONo          = POId;
                    inv.VendorId      = VendorId;
                    inv.VendorName    = WorkFlow.Objects.BLL.Vendors.GetVendorName(VendorId);
                    inv.SubProcess    = this.SubProcessId;
                    inv.FileId        = this.FileId;
                    inv.CostCodeId    = CostCodeId;
                    inv.History       = false;
                    inv.BatchId       = WorkFlow.BLL.Invoice.APInvoice.GetBatchId();
                    inv.AdminOrClaims = 1;
                    inv.ProcessId     = 22;

                    int invoiceId = inv.AddNewWithProcessId(ref message, command, userID);

                    InvoiceId = invoiceId;

                    if (!message.Equals(string.Empty))
                    {
                        //delete the uplaoded file
                        WorkFlow.BLL.Claim.UploadDoc doc = new UploadDoc(this.FileId);
                        doc.DeleteFile(ref message);

                        //delete attached PO
                        WorkFlow.BLL.JobCost.PoData.DeletePO(POId);

                        //this.lblMessage.Text = message;
                        trans.Rollback();
                        return(message);
                    }


                    string TaskDesc = "Approve Vendor Cost - " + inv.VendorName + " No. " + inv.InvoiceNo;
                    int    DetId    = dxProcess.wfTaskCreate(ref message, command, this.WfId, nextActionID, -1, assignedAccountId, assignedUserId, TaskDesc, "", "", InvoiceId, this.FileId, this.SubProcessId);


                    if (!message.Equals(string.Empty) || DetId < 0)
                    {
                        WorkFlow.BLL.JobCost.PoData.DeletePO(POId);
                        WorkFlow.BLL.Invoice.APInvoice.DeleteIncomingInvoice(command, InvoiceId, this.WfId, this.SubProcessId);
                        WorkFlow.BLL.Claim.UploadDoc doc = new UploadDoc(this.FileId);
                        doc.DeleteFile(ref message);
                        //this.lblMessage.Text = message;
                        trans.Rollback();
                        return(message);
                    }
                    else
                    {
                        if (cat == "20")
                        {
                            this.userName = dba.dxGetTextData("select resname from schresources where resindexid=(select accountid from wfusers where userid=" + this.userID.ToString() + ") and rescatid=20");
                        }
                        else
                        {
                            this.userName = TimebookCom.WeeklyTimebook.GetUserNameById(userID);
                        }
                        Notes.AddNewNote(this.WfId, "A", 0, DateTime.Now.ToString(), userID, "Invoice " + InvoiceId + " created by " + userName, this.SubProcessId);
                    }

                    dba.dxAddParameter("@UserId", assignedUserId);
                    int       assignedToRoleId = 0;// = 211;
                    DataTable dtRoles          = dba.dxGetTable("Select RoleId from wfUsersRoles where UserId = @UserId order by RoleId");
                    if (dtRoles.Rows.Count > 0)
                    {
                        for (int count = 0; count < dtRoles.Rows.Count; count++)
                        {
                            if (Convert.ToInt32(dtRoles.Rows[count]["RoleId"].ToString()) == 210)
                            {
                                assignedToRoleId = 210;
                                break;
                            }
                            else if (Convert.ToInt32(dtRoles.Rows[count]["RoleId"].ToString()) == 211)
                            {
                                assignedToRoleId = 211;
                                break;
                            }
                        }
                    }


                    if (!message.Equals(string.Empty) || DetId < 0)
                    {
                        WorkFlow.BLL.JobCost.PoData.DeletePO(POId);
                        WorkFlow.BLL.Invoice.APInvoice.DeleteIncomingInvoice(command, InvoiceId, this.WfId, this.SubProcessId);
                        WorkFlow.BLL.Claim.UploadDoc doc = new UploadDoc(this.FileId);
                        doc.DeleteFile(ref message);
                        //this.lblMessage.Text = message;
                        trans.Rollback();
                        return(message);
                    }
                    else
                    {
                        message = dba.dxUpdate(command, "wfDet", "AssignedToRoleId", "DetId", assignedToRoleId, DetId);
                        message = dba.dxUpdate(command, "wfDetR2G", "AssignedToRoleId", "DetId", assignedToRoleId, DetId);
                        dba.dxUpdate(command, "PurchaseOrders", "POStatusId", "POId", 2, inv.PONo); //update purchase order status
                    }


                    trans.Commit();
                    SetExpiryDate(DetId);
                    return("");
                }
            }
            catch (Exception ex)
            {
                string message = ex.Message;

                WorkFlow.BLL.Claim.UploadDoc doc = new UploadDoc(this.FileId);
                doc.DeleteFile(ref message);
                return(message);
            }
        }