How to Set Auto Sales Order Number by MASTER ID

Discussion in 'Tally Integration' started by ROHIT JAISWAR, Jul 15, 2021.

    
  1. ROHIT JAISWAR

    ROHIT JAISWAR Active Member


    i have Written in Resources for Auto Voucher Numbering but i want to set Auto Order Number in Backgroud

    Code:
    <ENVELOPE>
      <HEADER>
        <VERSION>1</VERSION>
        <TALLYREQUEST>Export</TALLYREQUEST>
        <TYPE>Data</TYPE>
        <ID>GETMSTID</ID>
      </HEADER>
      <BODY>
        <DESC>
          <STATICVARIABLES>
            <SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>
    <SVCURRENTCOMPANY>~CMP~</SVCURRENTCOMPANY>       
          </STATICVARIABLES>
          <TDL>
            <TDLMESSAGE>
              <REPORT NAME='GETMSTID' ISMODIFY='No'>
                <Object>Voucher:"ID:~MSTID~"</Object>
                <FORMS>GETMSTID</FORMS>           
              </REPORT>
              <FORM NAME='GETMSTID' ISMODIFY='No'>
                <PART>GETMSTID</PART>
              </FORM>
              <PART NAME='GETMSTID' ISMODIFY='No'>
                <LINES>GETMSTID</LINES>          
                <SCROLLED>Vertical</SCROLLED>
                <XMLTAG>VATDETAIL</XMLTAG>
              </PART>
              <LINE NAME='GETMSTID' ISMODIFY='No'>
                <FIELDS>GETMSTID</FIELDS>
                <XMLTAG>VATLEDGERS</XMLTAG>
              </LINE>
              <FIELD NAME='GETMSTID' ISMODIFY='No'>
                <SET>$VoucherNumber</SET>
                <XMLTAG>LEDGER</XMLTAG>
              </FIELD>         
            </TDLMESSAGE>
          </TDL>
        </DESC>
      </BODY>
    </ENVELOPE>
    on Button Click
    Code:
     StringBuilder builder = new StringBuilder();
                    builder.Append($@"<ENVELOPE>
    <HEADER>
      <TALLYREQUEST>Import Data</TALLYREQUEST>
    </HEADER>
    <BODY>
      <IMPORTDATA>
       <REQUESTDESC>
        <REPORTNAME>Vouchers</REPORTNAME>
        <STATICVARIABLES>
         <SVCURRENTCOMPANY>{lblCurrentCompany.Text}</SVCURRENTCOMPANY>
        </STATICVARIABLES>
       </REQUESTDESC>
       <REQUESTDATA>
        <TALLYMESSAGE>
         <VOUCHER>
          <ADDRESS.LIST>
           <ADDRESS>{lblPartyAddress1.Text}</ADDRESS>
           <ADDRESS>{lblPartyAddress2.Text}</ADDRESS>
           <ADDRESS>{lblPartyAddress3.Text}</ADDRESS>
            <ADDRESS>{lblPartyAddress4.Text}</ADDRESS>
          </ADDRESS.LIST>
          <BASICBUYERADDRESS.LIST>
           <BASICBUYERADDRESS>{lblPartyAddress1.Text}</BASICBUYERADDRESS>
           <BASICBUYERADDRESS>{lblPartyAddress2.Text}</BASICBUYERADDRESS>
           <BASICBUYERADDRESS>{lblPartyAddress3.Text}</BASICBUYERADDRESS>
            <BASICBUYERADDRESS>{lblPartyAddress4.Text}</BASICBUYERADDRESS>
          </BASICBUYERADDRESS.LIST>
          <BASICORDERTERMS.LIST>
           <BASICORDERTERMS>{txtTermsofDelivery.Text}</BASICORDERTERMS>
          </BASICORDERTERMS.LIST>
          <OLDAUDITENTRYIDS.LIST>
           <OLDAUDITENTRYIDS>-1</OLDAUDITENTRYIDS>
          </OLDAUDITENTRYIDS.LIST>
          <DATE>{ho.Cdate(txtVchDate.Text.ToString())}</DATE>
          <GSTREGISTRATIONTYPE>Regular</GSTREGISTRATIONTYPE>
          <VATDEALERTYPE>Regular</VATDEALERTYPE>
          <STATENAME>{lblPartyState.Text}</STATENAME>
          <NARRATION>{txtNarraion.Text}</NARRATION>
          <COUNTRYOFRESIDENCE>{lblCountry.Text}</COUNTRYOFRESIDENCE>
          <PARTYGSTIN>{lblGSTIN.Text}</PARTYGSTIN>
          <PLACEOFSUPPLY>{lblPartyState.Text}</PLACEOFSUPPLY>
          <PARTYNAME>{ddlPartyName.SelectedItem.ToString()}</PARTYNAME>
          <PARTYLEDGERNAME>{ddlPartyName.SelectedItem.ToString()}</PARTYLEDGERNAME>
          <VOUCHERTYPENAME>Sales Order</VOUCHERTYPENAME>
          <REFERENCE>{lblRunningOrderNumb.Text}</REFERENCE>
          <BASICBASEPARTYNAME>{ddlPartyName.SelectedItem.ToString()}</BASICBASEPARTYNAME>
          <CSTFORMISSUETYPE/>
          <CSTFORMRECVTYPE/>
          <FBTPAYMENTTYPE>Default</FBTPAYMENTTYPE>
          <PERSISTEDVIEW>Invoice Voucher View</PERSISTEDVIEW>
          <CONSIGNEEGSTIN>{lblGSTIN.Text}</CONSIGNEEGSTIN>
          <BASICBUYERNAME>{ddlPartyName.SelectedItem.ToString()}</BASICBUYERNAME>
          <BASICORDERREF>{txtOtherRef.Text}</BASICORDERREF>
          <BASICDUEDATEOFPYMT>{txtModeTermsofPayment.Text}</BASICDUEDATEOFPYMT>
          <PARTYMAILINGNAME>{ddlPartyName.SelectedItem.ToString()}</PARTYMAILINGNAME>
          <PARTYPINCODE></PARTYPINCODE>
          <CONSIGNEEMAILINGNAME>{ddlPartyName.SelectedItem.ToString()}</CONSIGNEEMAILINGNAME>
          <CONSIGNEECOUNTRYNAME>{lblCountry.Text}</CONSIGNEECOUNTRYNAME>
          <VCHGSTCLASS/>
          <BUYERPINNUMBER></BUYERPINNUMBER>
          <CONSIGNEEPINNUMBER></CONSIGNEEPINNUMBER>
          <CONSIGNEESTATENAME>{lblPartyState.Text}</CONSIGNEESTATENAME>
          <CONSIGNEEPINCODE></CONSIGNEEPINCODE>
          <DIFFACTUALQTY>No</DIFFACTUALQTY>
          <ISMSTFROMSYNC>No</ISMSTFROMSYNC>
          <ASORIGINAL>No</ASORIGINAL>
          <AUDITED>No</AUDITED>
          <FORJOBCOSTING>No</FORJOBCOSTING>
          <ISOPTIONAL>No</ISOPTIONAL>
          <EFFECTIVEDATE>{ho.Cdate(txtVchDate.Text.ToString())}</EFFECTIVEDATE>
          <USEFOREXCISE>No</USEFOREXCISE>
          <ISFORJOBWORKIN>No</ISFORJOBWORKIN>
          <ALLOWCONSUMPTION>No</ALLOWCONSUMPTION>
          <USEFORINTEREST>No</USEFORINTEREST>
          <USEFORGAINLOSS>No</USEFORGAINLOSS>
          <USEFORGODOWNTRANSFER>No</USEFORGODOWNTRANSFER>
          <USEFORCOMPOUND>No</USEFORCOMPOUND>
          <USEFORSERVICETAX>No</USEFORSERVICETAX>
          <ISDELETED>No</ISDELETED>
          <ISONHOLD>No</ISONHOLD>
          <ISBOENOTAPPLICABLE>No</ISBOENOTAPPLICABLE>
          <ISEXCISEVOUCHER>No</ISEXCISEVOUCHER>
          <EXCISETAXOVERRIDE>No</EXCISETAXOVERRIDE>
          <USEFORTAXUNITTRANSFER>No</USEFORTAXUNITTRANSFER>
          <IGNOREPOSVALIDATION>No</IGNOREPOSVALIDATION>
          <EXCISEOPENING>No</EXCISEOPENING>
          <USEFORFINALPRODUCTION>No</USEFORFINALPRODUCTION>
          <ISTDSOVERRIDDEN>No</ISTDSOVERRIDDEN>
          <ISTCSOVERRIDDEN>No</ISTCSOVERRIDDEN>
          <ISTDSTCSCASHVCH>No</ISTDSTCSCASHVCH>
          <INCLUDEADVPYMTVCH>No</INCLUDEADVPYMTVCH>
          <ISSUBWORKSCONTRACT>No</ISSUBWORKSCONTRACT>
          <ISVATOVERRIDDEN>No</ISVATOVERRIDDEN>
          <IGNOREORIGVCHDATE>No</IGNOREORIGVCHDATE>
          <ISVATPAIDATCUSTOMS>No</ISVATPAIDATCUSTOMS>
          <ISDECLAREDTOCUSTOMS>No</ISDECLAREDTOCUSTOMS>
          <ISSERVICETAXOVERRIDDEN>No</ISSERVICETAXOVERRIDDEN>
          <ISISDVOUCHER>No</ISISDVOUCHER>
          <ISEXCISEOVERRIDDEN>No</ISEXCISEOVERRIDDEN>
          <ISEXCISESUPPLYVCH>No</ISEXCISESUPPLYVCH>
          <ISGSTOVERRIDDEN>No</ISGSTOVERRIDDEN>
          <GSTNOTEXPORTED>No</GSTNOTEXPORTED>
          <IGNOREGSTINVALIDATION>No</IGNOREGSTINVALIDATION>
          <ISGSTREFUND>No</ISGSTREFUND>
          <ISGSTSECSEVENAPPLICABLE>No</ISGSTSECSEVENAPPLICABLE>
          <ISVATPRINCIPALACCOUNT>No</ISVATPRINCIPALACCOUNT>
          <IGNOREEINVVALIDATION>No</IGNOREEINVVALIDATION>
          <IRNJSONEXPORTED>No</IRNJSONEXPORTED>
          <IRNCANCELLED>No</IRNCANCELLED>
          <ISSHIPPINGWITHINSTATE>No</ISSHIPPINGWITHINSTATE>
          <ISOVERSEASTOURISTTRANS>No</ISOVERSEASTOURISTTRANS>
          <ISDESIGNATEDZONEPARTY>No</ISDESIGNATEDZONEPARTY>
          <ISCANCELLED>No</ISCANCELLED>
          <HASCASHFLOW>No</HASCASHFLOW>
          <ISPOSTDATED>No</ISPOSTDATED>
          <USETRACKINGNUMBER>No</USETRACKINGNUMBER>
          <ISINVOICE>No</ISINVOICE>
          <MFGJOURNAL>No</MFGJOURNAL>
          <HASDISCOUNTS>No</HASDISCOUNTS>
          <ASPAYSLIP>No</ASPAYSLIP>
          <ISCOSTCENTRE>No</ISCOSTCENTRE>
          <ISSTXNONREALIZEDVCH>No</ISSTXNONREALIZEDVCH>
          <ISEXCISEMANUFACTURERON>No</ISEXCISEMANUFACTURERON>
          <ISBLANKCHEQUE>No</ISBLANKCHEQUE>
          <ISVOID>No</ISVOID>
          <ORDERLINESTATUS>No</ORDERLINESTATUS>
          <VATISAGNSTCANCSALES>No</VATISAGNSTCANCSALES>
          <VATISPURCEXEMPTED>No</VATISPURCEXEMPTED>
          <ISVATRESTAXINVOICE>No</ISVATRESTAXINVOICE>
          <VATISASSESABLECALCVCH>No</VATISASSESABLECALCVCH>
          <ISVATDUTYPAID>Yes</ISVATDUTYPAID>
          <ISDELIVERYSAMEASCONSIGNEE>No</ISDELIVERYSAMEASCONSIGNEE>
          <ISDISPATCHSAMEASCONSIGNOR>No</ISDISPATCHSAMEASCONSIGNOR>
          <ISDELETEDVCHRETAINED>No</ISDELETEDVCHRETAINED>
          <CHANGEVCHMODE>No</CHANGEVCHMODE>
          <RESETIRNQRCODE>No</RESETIRNQRCODE>");
                    foreach (GridViewRow row in GVItem.Rows)
                    {
                        if (row.Cells[1].Text != null)
                        {
                            builder.Append($@" <ALLINVENTORYENTRIES.LIST>
           <STOCKITEMNAME>{row.Cells[1].Text.ToString().Trim()}</STOCKITEMNAME>
           <ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>
           <ISLASTDEEMEDPOSITIVE>No</ISLASTDEEMEDPOSITIVE>
           <ISAUTONEGATE>No</ISAUTONEGATE>
           <ISCUSTOMSCLEARANCE>No</ISCUSTOMSCLEARANCE>
           <ISTRACKCOMPONENT>No</ISTRACKCOMPONENT>
           <ISTRACKPRODUCTION>No</ISTRACKPRODUCTION>
           <ISPRIMARYITEM>No</ISPRIMARYITEM>
           <ISSCRAP>No</ISSCRAP>");
                            if (!string.IsNullOrEmpty(row.Cells[2].Text) && row.Cells[2].Text.ToString() != "&nbsp;")
                            {
                                builder.Append($@"
                <BASICUSERDESCRIPTION.LIST>
                        <BASICUSERDESCRIPTION>{(row.Cells[2].Text.ToString()).Trim()}</BASICUSERDESCRIPTION>
                       </BASICUSERDESCRIPTION.LIST>");
                            }
                            builder.Append($@"<RATE>{Convert.ToDecimal(row.Cells[5].Text)}</RATE>
           <AMOUNT>{Convert.ToDecimal(row.Cells[7].Text)}</AMOUNT>
           <ACTUALQTY>{Convert.ToDecimal(row.Cells[4].Text)}</ACTUALQTY>
           <BILLEDQTY>{Convert.ToDecimal(row.Cells[4].Text)}</BILLEDQTY>
           <BATCHALLOCATIONS.LIST>
            <GODOWNNAME>Main Location</GODOWNNAME>
            <BATCHNAME>Primary Batch</BATCHNAME>
            <INDENTNO/>
    <ORDERNO>{lblRunningOrderNumb.Text.Trim()}</ORDERNO>
            <TRACKINGNUMBER/>
            <DYNAMICCSTISCLEARED>No</DYNAMICCSTISCLEARED>
            <AMOUNT>{Convert.ToDecimal(row.Cells[7].Text)}</AMOUNT>
            <ACTUALQTY>{Convert.ToDecimal(row.Cells[4].Text)}</ACTUALQTY>
            <BILLEDQTY>{Convert.ToDecimal(row.Cells[4].Text)}</BILLEDQTY>
            <ORDERDUEDATE>{ho.Cdate(row.Cells[3].Text.ToString().Trim())}</ORDERDUEDATE>");
                            builder.Append($@"</BATCHALLOCATIONS.LIST>
           <ACCOUNTINGALLOCATIONS.LIST>
            <LEDGERNAME>{ddlSalesLeder.SelectedItem.ToString()}</LEDGERNAME>
            <GSTCLASS/>
            <ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>
            <LEDGERFROMITEM>No</LEDGERFROMITEM>
            <REMOVEZEROENTRIES>No</REMOVEZEROENTRIES>
            <ISPARTYLEDGER>No</ISPARTYLEDGER>
            <ISLASTDEEMEDPOSITIVE>No</ISLASTDEEMEDPOSITIVE>
            <ISCAPVATTAXALTERED>No</ISCAPVATTAXALTERED>
            <ISCAPVATNOTCLAIMED>No</ISCAPVATNOTCLAIMED>
            <AMOUNT>{Convert.ToDecimal(row.Cells[7].Text)}</AMOUNT>
           </ACCOUNTINGALLOCATIONS.LIST> 
          </ALLINVENTORYENTRIES.LIST>");
                        }
                    }
    
                    builder.Append($@"<LEDGERENTRIES.LIST>
           <LEDGERNAME>{ddlPartyName.SelectedItem.ToString()}</LEDGERNAME>
           <GSTCLASS/>
           <ISDEEMEDPOSITIVE>Yes</ISDEEMEDPOSITIVE>
           <LEDGERFROMITEM>No</LEDGERFROMITEM>
           <ISPARTYLEDGER>No</ISPARTYLEDGER>
           <ISLASTDEEMEDPOSITIVE>Yes</ISLASTDEEMEDPOSITIVE>
           <ISCAPVATNOTCLAIMED>No</ISCAPVATNOTCLAIMED>
           <AMOUNT>-{txtTotalAmountWithGST.Text}</AMOUNT>
           <BILLALLOCATIONS.LIST>
            <NAME>{lblRunningOrderNumb.Text.Trim()}</NAME>
            <BILLTYPE>New Ref</BILLTYPE>
            <TDSDEDUCTEEISSPECIALRATE>No</TDSDEDUCTEEISSPECIALRATE>
            <AMOUNT>-{txtTotalAmountWithGST.Text}</AMOUNT>    
           </BILLALLOCATIONS.LIST>
          </LEDGERENTRIES.LIST>");
    
                    if (lblCMPState.Text == lblPartyState.Text)
                    {
                        builder.Append($@"<LEDGERENTRIES.LIST>
           <ROUNDTYPE/>
           <LEDGERNAME>CGST</LEDGERNAME>
           <VOUCHERFBTCATEGORY/>
           <GSTCLASS/>
           <ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>
           <LEDGERFROMITEM>No</LEDGERFROMITEM>
           <ISPARTYLEDGER>No</ISPARTYLEDGER>
           <ISLASTDEEMEDPOSITIVE>No</ISLASTDEEMEDPOSITIVE>
           <ISCAPVATNOTCLAIMED>No</ISCAPVATNOTCLAIMED>
           <AMOUNT>{Convert.ToDecimal(txtCGST.Text)}</AMOUNT>
           <VATEXPAMOUNT>{Convert.ToDecimal(txtCGST.Text)}</VATEXPAMOUNT>
           <GSTDUTYAMOUNT>{Convert.ToDecimal(txtCGST.Text)}</GSTDUTYAMOUNT>
          </LEDGERENTRIES.LIST>
    <LEDGERENTRIES.LIST>
           <ROUNDTYPE/>
           <LEDGERNAME>SGST</LEDGERNAME>
           <VOUCHERFBTCATEGORY/>
           <GSTCLASS/>
           <ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>
           <LEDGERFROMITEM>No</LEDGERFROMITEM>
           <ISPARTYLEDGER>No</ISPARTYLEDGER>
           <ISLASTDEEMEDPOSITIVE>No</ISLASTDEEMEDPOSITIVE>
           <ISCAPVATNOTCLAIMED>No</ISCAPVATNOTCLAIMED>
           <AMOUNT>{Convert.ToDecimal(txtSGST.Text)}</AMOUNT>
           <VATEXPAMOUNT>{Convert.ToDecimal(txtSGST.Text)}</VATEXPAMOUNT>
           <GSTDUTYAMOUNT>{Convert.ToDecimal(txtSGST.Text)}</GSTDUTYAMOUNT>
          </LEDGERENTRIES.LIST>");
                    }
                    else
    
                    {
                        builder.Append($@"<LEDGERENTRIES.LIST>
           <ROUNDTYPE/>
           <LEDGERNAME>IGST</LEDGERNAME>
           <VOUCHERFBTCATEGORY/>
           <GSTCLASS/>
           <ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>
           <LEDGERFROMITEM>No</LEDGERFROMITEM>
           <ISPARTYLEDGER>No</ISPARTYLEDGER>
           <ISLASTDEEMEDPOSITIVE>No</ISLASTDEEMEDPOSITIVE>
           <ISCAPVATNOTCLAIMED>No</ISCAPVATNOTCLAIMED>
           <AMOUNT>{Convert.ToDecimal(txtIGST.Text)}</AMOUNT>
           <VATEXPAMOUNT>{Convert.ToDecimal(txtIGST.Text)}</VATEXPAMOUNT>
           <GSTDUTYAMOUNT>{Convert.ToDecimal(txtIGST.Text)}</GSTDUTYAMOUNT>
          </LEDGERENTRIES.LIST>");
                    }
    
                    builder.Append($@"
                        </VOUCHER>
                        </TALLYMESSAGE>
                        </REQUESTDATA>
                     </IMPORTDATA>
                    </BODY>
                    </ENVELOPE>");
                    string innerString = builder.ToString();
                    //var path = @"E:\ABSOLUTE SALES ORDER\XML\Post.xml";
                    //File.WriteAllText(path, innerString);
                    String res = c.SendReqst(innerString);
                  
                    XmlDocument xml = new XmlDocument();
                    xml.LoadXml(res);
                    string lastvchid = xml.SelectSingleNode("//RESPONSE//LASTVCHID").InnerText;
                    string created = xml.SelectSingleNode("//RESPONSE//CREATED").InnerText;
                    if (Convert.ToInt32(lastvchid) > 0)
                    {
                        string vchxml = Resource1.LASTVCHNO.Replace("~CMP~", lblCurrentCompany.Text.ToString()).Replace("~MSTID~", lastvchid);
                        res = c.SendReqst(vchxml);
                        xml = new XmlDocument();
                        xml.LoadXml(res);
                        voucherNum = xml.SelectSingleNode("//ENVELOPE//VATDETAIL//VATLEDGERS//LEDGER").InnerText;
     


Share This Page