I am trying to create a tally sales voucher from XML api.
If I use a date '20190101' in XML it works fine. But if I use '20190118', it throws error.
Here's my XML:
<ENVELOPE>
<HEADER>
<TALLYREQUEST>Import Data</TALLYREQUEST>
</HEADER>
<BODY>
<IMPORTDATA>
<REQUESTDESC>
<REPORTNAME>Vouchers</REPORTNAME>
<STATICVARIABLES>
<SVCURRENTCOMPANY>SOAC</SVCURRENTCOMPANY>
</STATICVARIABLES>
</REQUESTDESC>
<REQUESTDATA>
<TALLYMESSAGE xmlns:UDF="TallyUDF">
<VOUCHER VCHTYPE="Sales" ACTION="Create" OBJVIEW="Invoice Voucher View">
<DATE>20190101</DATE>
<NARRATION>Narration</NARRATION>
<PARTYNAME>Cash Cust</PARTYNAME>
<VOUCHERTYPENAME>Sales</VOUCHERTYPENAME>
<REFERENCE>Reference No</REFERENCE>
<PARTYLEDGERNAME>Cash Cust</PARTYLEDGERNAME>
<BASICBASEPARTYNAME>Cash Cust</BASICBASEPARTYNAME>
<PERSISTEDVIEW>Invoice Voucher View</PERSISTEDVIEW>
<BASICBUYERNAME>Cash Cust</BASICBUYERNAME>
<BASICDATETIMEOFINVOICE>20190101</BASICDATETIMEOFINVOICE>
<BASICDATETIMEOFREMOVAL>20190101</BASICDATETIMEOFREMOVAL>
<VOUCHERTYPEORIGNAME>Sales</VOUCHERTYPEORIGNAME>
<EFFECTIVEDATE>20190101</EFFECTIVEDATE>
<HASCASHFLOW>Yes</HASCASHFLOW>
<ISINVOICE>Yes</ISINVOICE>
<INVOICEORDERLIST.LIST>
<BASICORDERDATE>20190101</BASICORDERDATE>
<BASICPURCHASEORDERNO>OrderID</BASICPURCHASEORDERNO>
</INVOICEORDERLIST.LIST>
<LEDGERENTRIES.LIST>
<LEDGERNAME>Cash Cust</LEDGERNAME>
<ISDEEMEDPOSITIVE>Yes</ISDEEMEDPOSITIVE>
<ISPARTYLEDGER>Yes</ISPARTYLEDGER>
<ISLASTDEEMEDPOSITIVE>Yes</ISLASTDEEMEDPOSITIVE>
<AMOUNT>-40.00</AMOUNT>
</LEDGERENTRIES.LIST>
<ALLINVENTORYENTRIES.LIST>
<STOCKITEMNAME>Beef Burger</STOCKITEMNAME>
<ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>
<ISLASTDEEMEDPOSITIVE>No</ISLASTDEEMEDPOSITIVE>
<RATE>10.00/pcs</RATE>
<AMOUNT>40.00</AMOUNT>
<ACTUALQTY> 4 pcs</ACTUALQTY>
<BILLEDQTY> 4 pcs</BILLEDQTY>
<BATCHALLOCATIONS.LIST>
<GODOWNNAME>Main Location</GODOWNNAME>
<BATCHNAME>Primary Batch</BATCHNAME>
<AMOUNT>40.00</AMOUNT>
<ACTUALQTY> 4 pcs</ACTUALQTY>
<BILLEDQTY> 4 pcs</BILLEDQTY>
</BATCHALLOCATIONS.LIST>
<ACCOUNTINGALLOCATIONS.LIST>
<LEDGERNAME>Food Sales</LEDGERNAME>
<ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>
<ISLASTDEEMEDPOSITIVE>No</ISLASTDEEMEDPOSITIVE>
<AMOUNT>40.00</AMOUNT>
</ACCOUNTINGALLOCATIONS.LIST>
</ALLINVENTORYENTRIES.LIST>
</VOUCHER>
</TALLYMESSAGE>
</REQUESTDATA>
</IMPORTDATA>
</BODY>
</ENVELOPE>
How can I resolve this? Is it because of effective date or any other tag? I'm replacing all the '20190101' with '20190118'.
Here's the error (LOL):
<RESPONSE>
<CREATED>0</CREATED>
<ALTERED>0</ALTERED>
<DELETED>0</DELETED>
<LASTVCHID>0</LASTVCHID>
<LASTMID>0</LASTMID>
<COMBINED>0</COMBINED>
<IGNORED>0</IGNORED>
<ERRORS>1</ERRORS>
<CANCELLED>0</CANCELLED>
</RESPONSE>
Appreciate any tips and hints.
It was the due to Student Mode which allows only few days in a month for transactions and not all days. I loaded the license, didn't change anything and the XML works perfect.
Related
I am trying to host several SVGs on GitHub so they can be accessed by my partners. I am able to get the code up without issue, but when I click on the Raw to share the link, all I get is a blank screen. I know there are workaround like using raw.githack, but sending the link individually isn't really a good workflow. I also tried with some SVGs outside of this library and had no issues with them rendering when I click the Raw. I don't know much about SVG code and I didn't make the symbols, so excuse my ignorance on the topic. Below is the code (and sorry it's so long) . My repo is public and is located here https://github.com/afackler/SvgTest/blob/main/Ambulance.svg. Any suggestions are helpful, thanks!
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 128 128"
version="1.1"
id="svg2">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6" />
<image
y="0"
x="0"
id="image10"
xlink:href="data:image/png;base64,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
"
style="image-rendering:optimizeQuality"
preserveAspectRatio="none"
height="128"
width="128" />
</svg>
Your image embedded via data-url is treated as en external resource.
In chrome dev tools you'll see an error log like this:
Refused to load the image 'data:image [...]because it violates the
following Content Security Policy directive: "default-src 'none'".
Note that 'img-src' was not explicitly set, so 'default-src' is used
as a fallback.
As a work around you could save this image as a self contained png file
Sample text file contains:
`<?xml version="1.0" encoding="UTF-8" ?>
<Document xmlns ="urn:iso:std:iso:20022:tech:xsd:camt.056.001.01"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<FIToFIPmtCxlReq>
<Assgnmt>
<Id>ID123456</Id>
<Assgnr>
<Agt>
<FinInstnId>
<BIC>BICSEND</BIC>
</FinInstnId>
</Agt>
</Assgnr>
<Assgne>
<Agt>
<FinInstnId>
<BIC>BICRCV</BIC>
</FinInstnId>
</Agt>
</Assgne>
<CreDtTm>2020-12-16T09:05:15.0Z</CreDtTm>
</Assgnmt>
<CtrlData>
<NbOfTxs>1</NbOfTxs>
<CtrlSum>0</CtrlSum>
</CtrlData>
<Undrlyg>
<TxInf>
<CxlId>20201216.105.19344855940590400</CxlId>
<OrgnlGrpInf>
<OrgnlMsgId>REF123456789</OrgnlMsgId>
<OrgnlMsgNmId>pacs.008</OrgnlMsgNmId>
</OrgnlGrpInf>
<OrgnlInstrId>FT123456</OrgnlInstrId>
<OrgnlEndToEndId>NOTPROVIDED</OrgnlEndToEndId>
<OrgnlTxId>20201216.100.02202020</OrgnlTxId>
<OrgnlIntrBkSttlmAmt Ccy="EUR">25.23</OrgnlIntrBkSttlmAmt>
<OrgnlIntrBkSttlmDt>2020-12-16</OrgnlIntrBkSttlmDt>`
Please be informed that I would like to code PowerShell to extract the data in tag <OrgnlIntrBkSttlmAmt> (please note that the data length can change since this is an amount field) and then replace the "0" in tag <CtrlSum> with "25.23".
Can someone help me with this.
Thank you for your time.
The xml you show us is invalid as it is missing the following closing tags:
</TxInf>
</Undrlyg>
</FIToFIPmtCxlReq>
</Document>
If I add these, you could do this to update the value in the <CtrlSum> tag:
# load the xml from file
[xml]$xml = Get-Content -Path 'D:\Test\test.xml' -Raw
# get the amount from the 'OrgnlIntrBkSttlmAmt' tag
$amount = $xml.Document.FIToFIPmtCxlReq.Undrlyg.TxInf.OrgnlIntrBkSttlmAmt.'#text'
# use that amount to put in the 'CtrlSum' tag
$xml.Document.FIToFIPmtCxlReq.CtrlData.CtrlSum = $amount
# save the updated xml to file
$xml.Save('D:\Test\test.xml')
I am using the asp.net version of shieldui for charts and have a barchart and would like to set the primaryHeader or secondaryHeader with data from the database. I searched the documentation page of shieldui website and could not find anything.
What I tried is something like this:
<shield:ShieldChart ID="ShieldChart1" Width="100%" Height="200px" runat="server"
OnTakeDataSource="ShieldChart1_TakeDataSource"
CssClass="chart">
<PrimaryHeader Text=" ">
<Style Bold="true" FontSize="30px" />
</PrimaryHeader>
<SecondaryHeader Text="<asp:Label id="CardInvoiced" runat="server"/> ">
</SecondaryHeader>
<ExportOptions AllowExportToImage="false" AllowPrint="false" />
<Axes>
<shield:ChartAxisX
CategoricalValuesField="Area">
</shield:ChartAxisX>
<shield:ChartAxisY>
</shield:ChartAxisY>
</Axes>
<DataSeries>
<shield:ChartBarSeries DataFieldY="Sales" CollectionAlias="signups">
</shield:ChartBarSeries>
<shield:ChartBarSeries DataFieldY="Starts" CollectionAlias="starts">
</shield:ChartBarSeries>
<shield:ChartBarSeries DataFieldY="bis" CollectionAlias="bis">
</shield:ChartBarSeries>
<shield:ChartBarSeries DataFieldY="comps" CollectionAlias="comps">
</shield:ChartBarSeries>
</DataSeries>
</shield:ShieldChart>
ShieldUI error is:
Type 'Shield.Web.UI.ShieldChart' does not have a public property named 'Label'.
Any suggestion on how to accomplish this?
I solved this and here is how you set both PrimaryHeader and SecondaryHeader in ShieldUi graphs:
ShieldChartFSS7R.PrimaryHeader.Text = "Test Primary Header";
ShieldChartFSS7R.SecondaryHeader.Text = "Test Secondary Header";
Which shows the headers like this:
I'm new to protractor and need to know how can i get the text i.e. Connections in the below code block. I need to click this "Connections". Anyhelp would be really appreciated. Thanks in advance
<md-option ng-repeat="worksite in vmSplashController.worksites track by $index" id="option_worksite_TRANSFER" ng-value="worksite" tabindex="0" class="ng-scope" role="option" aria-selected="false" value="[object Object]">
<div class="md-text ng-binding">
Connections
</div>
</md-option>
Full code
<md-dialog ng-cloak aria-span="" id="splashDialog" class="asui-popup-container splashContainer">
<form name="splash">
<md-dialog-content class="agentDetails" flex>
</md-dialog-content>
<md-dialog-content class="agentOptions" flex layout="row">
<md-input-container class="md-input-has-placeholder" id="nav_worksite" ng-if="vmSplashController.worksites.length >= 1" flex="50" layout="column">
<label class="select-lable">Worksite</label>
<md-select md-no-ink name="nav_worksite" required ng-model="vmSplashController.worksites.selected" ng-model-options="{trackBy: '$value.locationCode'}" aria-label="Select Worksite" md-container-class="md-select-custom nav-worksite-selectbox" ng-change="vmSplashController.onWorksiteChange(vmSplashController.worksites.selected)">
<md-option ng-repeat="worksite in vmSplashController.worksites track by $index" id="option_worksite_{{worksite.locationCode}}" ng-value="worksite">
{{**Here that Div is being created i.e. Connections along with other two options**}}
</md-option>
</md-select>
</md-input-container>
</md-dialog-content>
<md-dialog-actions layout="row">
<md-button md-no-ink class="md-primary nobg-btn" ng-click="vmSplashController.onConfirm()" ng-disabled="splash.$invalid">
CONFIRM
</md-button>
</md-dialog-actions>
</form>
</md-dialog>
I treid this
element(by.cssContainingText('.option_worksite_TRANSFER > div.md-text', 'Connections')).click();
but getting the below error.
Message:
Failed: No element found using locator: by.cssContainingText(".option_worksite_TRANSFER > div.md-text", "Connections")
First - I'm a bit confused. In example you are trying to select class option_worksite_TRANSFER, but in error message it has an id.
If you are trying to select value from dropdown, try this solution:
https://stackoverflow.com/a/39047319/6331748
Try this using xpath:
element(by.xpath("//div[text()='Connections']")).click();
Try using the below code:
element(by.cssContainingText('[id^="option_worksite"] > div.md-text', 'Connections')).click();
Adding waits:
var EC = protractor.ExpectedConditions;
var ele = element(by.cssContainingText('[id^="option_worksite"] > div.md-text', 'Connections'));
browser.wait(EC.visibilityOf(ele), 5000).then(function(){
ele.click();
});
I have a legacy application where an email.cfm file is used with a cfmail tag to send e-mail:
<cfmail from="abc#123.com" to="def#456.com" subject="New e-mail!">
// lots of HTML
</cfmail>
Now I'd like to update it for ColdFusion Model Glue 3. I want to send it using a mail object in the controller, and include in the body a CFM page:
var mail = new mail();
mail.setFrom("abc#123.com");
mail.setTo("def#456.com");
mail.setSubject("New e-mail!");
mail.setBody( ** SOME CFM FILE ** );
mail.send();
Does anybody have any idea how I can do this?
You can render the content you want to email in a cfsavecontent block and then use that in the email, like:
<cfsavecontent variable="myemail">
...add some HTML, include another file, whatever...
</cfsavecontent>
<cfscript>
mail.setBody( myemail );
</cfscript>
See http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7d57.html
Call the CFC assigning it to a variable, like cfset request.emaiBody = cfc.function(). Then just put it in your setBody tag.
OP was convinced to use CFML, but to answer the question as it was initially asked:
var mail = new Mail();
mail.setFrom("abc#123.com");
mail.setTo("def#456.com");
mail.setSubject("New e-mail!");
mail.setType("html");
savecontent variable="mailBody" {
include "email.cfm";
}
mail.setBody(mailBody);
mail.send();
I ended up following Henry's advice in the comments and created a CFML-based CFC:
<cfcomponent>
<cffunction name="SendMail">
<cfargument name="from"/>
<cfargument name="to"/>
<cfargument name="subject"/>
<cfmail from="#from#" to="#to#" subject="#subject#">
<!--- HTML for e-mail body here --->
</cfmail>
</cffunction>
</cfcomponent>
Dave Long's suggestion is also good, which is to create components using <cfcomponent>, then wrapping the code in <cfscript> tags. This gives you the ability to fall back to CFML in case the there is no cfscript equivalent or it's easier to do with CFML:
<cfcomponent>
<cfscript>
void function GetData()
{
RunDbQuery();
}
</cfscript>
<cffunction name="RunDbQuery">
<cfquery name="data">
SELECT * FROM ABC;
</cfquery>
<cfreturn data>
</cffunction>
</cfcomponent>