114 $documentBuilder = ZugferdDocumentBuilder::createNew(ZugferdProfiles::PROFILE_EN16931);
115 $documentBuilder->setDocumentInformation(
118 ,\DateTime::createFromFormat(
'Y-m-d',$this->data[
"issue_date"])
119 , $this->data[
'currency']
122 $documentBuilder->addDocumentPaymentTerm(
123 sprintf(
"IBAN %s",$company[
'COMPANY_BANK_IBAN'])
124 ,\DateTime::createFromFormat(
'Y-m-d',$this->data[
"due_date"])
125 , $this->data[
'info'][
'communication']
130 $documentBuilder->setDocumentSeller($company[
'MY_NAME'], );
131 $documentBuilder->addDocumentSellerGlobalId($company[
'SIREN'],
'0009');
132 $documentBuilder->addDocumentSellerTaxNumber($company[
'MY_TVA']);
133 $documentBuilder->addDocumentSellerVATRegistrationNumber($company[
'MY_TVA']);
134 $documentBuilder->setDocumentSellerAddress(
135 $company[
'MY_STREET']
137 , $company[
'MY_POSTCODE']
138 , $company[
'MY_CITY']
139 ,$company[
'MY_COUNTRY_CODE']);
141 $documentBuilder->setDocumentSellerCommunication(ZugferdElectronicAddressScheme::UNECE3155_EM
142 , $company[
"INVOICE_EMAIL_COMPANY"]);
148 $documentBuilder->setDocumentBuyer($this->data[
'customer'][
'name'], $this->data[
'customer'][
'customer_vat_id']);
149 $documentBuilder->setDocumentBuyerAddress(
150 $this->data[
'customer'][
'street']
153 , $this->data[
'customer'][
'postalzone']
154 , $this->data[
'customer'][
'city']
155 , $this->data[
'customer'][
'country']
160 $documentBuilder->setDocumentBuyerOrderReferencedDocument($this->data[
'info'][
'order']);
167 $nb=count($this->data[
'operation']);
170 $documentBuilder->addNewPosition(
$i+1);
171 $documentBuilder->setDocumentPositionProductDetails($this->data[
'operation'][
$i][
'qcode']
172 ,$this->data[
'operation'][
$i][
'name']
173 ,$this->data[
'operation'][
$i][
'description']
175 $documentBuilder->setDocumentPositionNetPrice($this->data[
'operation'][
$i][
'price']);
176 $documentBuilder->setDocumentPositionQuantity($this->data[
'operation'][
$i][
'quantity']
177 ,$this->data[
'operation'][
$i][
'code_quantity']
179 $documentBuilder->addDocumentPositionTax(
180 $this->data[
'operation'][
$i][
'vat_code']
181 , ZugferdVatTypeCodes::VALUE_ADDED_TAX
182 , bcmul($this->data[
'operation'][
$i][
'vat_rate'],100,2)
184 $documentBuilder->setDocumentPositionLineSummation($this->data[
'operation'][
$i][
'price']);
187 $base=bcadd(
$base,$this->data[
'operation'][
$i][
'price'],2);
188 $vat=bcadd($vat,$this->data[
'operation'][
$i][
'vat'],2);
189 $vat=bcsub($vat,$this->data[
'operation'][
$i][
'vat_reversed'],2);
191 $tt = bcadd(
$base,$vat,2);
195 $subTotal=$this->data[
'subTotalVAT'];
196 $nb_sub=count($subTotal);
197 for (
$i=0;
$i<$nb_sub;
$i++)
199 $documentBuilder->addDocumentTax(
200 $subTotal[
$i][
"vat_code"]
201 , ZugferdVatTypeCodes::VALUE_ADDED_TAX
202 ,sprintf(
"%.2f",$subTotal[
$i][
'amount'])
203 , sprintf(
"%.2f",$subTotal[
$i][
'vat'])
204 , sprintf(
"%.2f",$subTotal[
$i][
'percent'])
210 $documentBuilder->setDocumentSummation(
211 sprintf(
"%.2f",$this->data[
'TaxInclusiveAmount'])
212 , sprintf(
"%.2f",$this->data[
'PayableAmount'])
213 , sprintf(
"%.2f",$this->data[
'TaxExclusiveAmount'])
216 , sprintf(
"%.2f",$this->data[
'LineExtensionAmount'])
217 , sprintf(
"%.2f",(bcsub($this->data[
'TaxInclusiveAmount'],
218 $this->data[
'TaxExclusiveAmount'],
226 return $documentBuilder;