510 lines
17 KiB
PHP
510 lines
17 KiB
PHP
|
|
<?php
|
||
|
|
// ini_set ( 'display_errors', 1 );
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Wyszukiwanie i tworzenie faktur okresowych z zamówień
|
||
|
|
* Autor: Dominik 'DranZi' Brzóska
|
||
|
|
*/
|
||
|
|
class periodicInvoices {
|
||
|
|
private $db;
|
||
|
|
private $ask;
|
||
|
|
private $reply;
|
||
|
|
private $result;
|
||
|
|
private $pos;
|
||
|
|
private $id;
|
||
|
|
private $val;
|
||
|
|
private $document_list;
|
||
|
|
private $position_list;
|
||
|
|
private $c;
|
||
|
|
public $return_id;
|
||
|
|
public $multi_pdf_ids;
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Wyszukuje zamówienia miesięczne i roczne :)
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
function searchSaleOrders() {
|
||
|
|
$this->db = $GLOBALS ['superGlobalDb'];
|
||
|
|
$this->ask = "select
|
||
|
|
id, status, document_no, invoice_date,stock_id,stock_name,ecmpaymentcondition_id,currency_id,created_by,modified_user_id,assigned_user_id,parent_id,parent_name,stock_id
|
||
|
|
parent_address_street,
|
||
|
|
parent_address_city,
|
||
|
|
parent_address_postalcode,
|
||
|
|
parent_address_country,
|
||
|
|
parent_nip,
|
||
|
|
payment_date_days,
|
||
|
|
invoice_date_interval,
|
||
|
|
type,
|
||
|
|
shipping_address_name,
|
||
|
|
shipping_address_street,
|
||
|
|
shipping_address_postalcode,
|
||
|
|
shipping_address_city
|
||
|
|
|
||
|
|
|
||
|
|
from
|
||
|
|
ecmsales
|
||
|
|
where
|
||
|
|
deleted = 0
|
||
|
|
and (type = 'inv_m' or type= 'inv_y')";
|
||
|
|
|
||
|
|
$this->reply = $this->db->query ( $this->ask );
|
||
|
|
echo $this->reply->num_rows . "\n";
|
||
|
|
while ( $this->result = $this->db->fetchByAssoc ( $this->reply ) ) {
|
||
|
|
|
||
|
|
$add = false;
|
||
|
|
if ($this->result ['type'] == 'inv_m') {
|
||
|
|
// miesieczne
|
||
|
|
if ($this->result ['invoice_date_interval'] == 1 || $this->result ['invoice_date_interval'] == '') {
|
||
|
|
// co miesiac lub nie wpisane
|
||
|
|
if (date ( 'd', strtotime ( $this->result ['invoice_date'] ) ) == date ( 'd' )) {
|
||
|
|
$add = true;
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
$from = new DateTime ( date ( 'Y-m-d', strtotime ( $this->result ['invoice_date'] ) ) );
|
||
|
|
$to = new DateTime ();
|
||
|
|
for($a = 1; $from <= $to; $from->modify ( '+' . $this->result ['invoice_date_interval'] . ' month' )->format ( 'm' )) {
|
||
|
|
if ($from->format ( 'm' ) == $to->format ( 'm' ) && $from->format ( 'd' ) == $to->format ( 'd' )) {
|
||
|
|
$add = true;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
if ($this->result ['type'] == 'inv_y') {
|
||
|
|
if (date ( 'd', strtotime ( $this->result ['invoice_date'] ) ) == date ( 'd' ) && date ( 'm', strtotime ( $this->result ['invoice_date'] ) ) == date ( 'm' )) {
|
||
|
|
$add = true;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($add == true) {
|
||
|
|
echo 'cos dodaje' . "\n";
|
||
|
|
$this->document_list [] = $this->result;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Wyszukuje zbliżające się terminy rat
|
||
|
|
*/
|
||
|
|
function searchPayments() {
|
||
|
|
$this->db = $GLOBALS ['db'];
|
||
|
|
$this->ask = "select p.*,a.parent_id,a.id as docid,a.created_by from ecmagreementitems p
|
||
|
|
inner join ecmagreements a on p.ecmagreement_id=a.id
|
||
|
|
where
|
||
|
|
p.deleted=0 and ((day(p.payment_date)-2) = day('2015-01-29')
|
||
|
|
and month(p.payment_date) = month('2015-01-29')
|
||
|
|
and year(p.payment_date) = year('2015-01-29')) limit 1";
|
||
|
|
|
||
|
|
$this->reply = $this->db->query ( $this->ask );
|
||
|
|
while ( $this->result = $this->db->fetchByAssoc ( $this->reply ) ) {
|
||
|
|
$this->document_list [] = $this->result;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
function getParentEmail($parent) {
|
||
|
|
$sea = new SugarEmailAddress ();
|
||
|
|
$addresses = $sea->getAddressesByGUID ( $parent, 'Accounts' );
|
||
|
|
$a = new Account ();
|
||
|
|
$a->retrieve ( $parent );
|
||
|
|
$check = 0;
|
||
|
|
$email = array ();
|
||
|
|
foreach ( $addresses as $address ) {
|
||
|
|
if ($address ['email_address'] != '') {
|
||
|
|
$email [$address ['email_address']] = $a->name;
|
||
|
|
$check = 1;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
unset ( $sea );
|
||
|
|
unset ( $a );
|
||
|
|
return $check == 1 ? $email : $check;
|
||
|
|
}
|
||
|
|
function getUserEmail($user_id) {
|
||
|
|
$user = BeanFactory::getBean ( 'Users', $user_id );
|
||
|
|
$primary_email = $user->emailAddress->getPrimaryAddress ( $user );
|
||
|
|
return $primary_email;
|
||
|
|
}
|
||
|
|
function stringToArray($char) {
|
||
|
|
$this->return_id = explode ( $char, $this->return_id );
|
||
|
|
}
|
||
|
|
function CreateSinglePdf() {
|
||
|
|
$_REQUEST ['pdf_type'] = 0;
|
||
|
|
include_once "modules/EcmInvoiceOuts/createPDF.php";
|
||
|
|
|
||
|
|
$_REQUEST ['pdf_type'] = 0;
|
||
|
|
$EcmSysInfo = new EcmSysInfo ();
|
||
|
|
if ($EcmSysInfo->getDatabaseName () == 'preDb_60b08fe051546309b61d2714d4a0438d') {
|
||
|
|
$return = newPDFCreator ( $this->id, 'FILE', true );
|
||
|
|
} else {
|
||
|
|
$return = createEcmInvoiceOutPdf ( $this->id, 'FILE' );
|
||
|
|
}
|
||
|
|
|
||
|
|
return $return;
|
||
|
|
}
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Wysyłanie emailu
|
||
|
|
*/
|
||
|
|
function sendSingleEmail($title, $text, $to, $filename, $id) {
|
||
|
|
require_once ("include/phpmailer/class.phpmailer.php");
|
||
|
|
require_once ("include/phpmailer/class.smtp.php");
|
||
|
|
|
||
|
|
$mailClassS = new PHPMailer ();
|
||
|
|
$mailClassS->isSMTP (); // Set mailer to use SMTP
|
||
|
|
|
||
|
|
$EcmSysInfo = new EcmSysInfo ();
|
||
|
|
$email = $EcmSysInfo->getEmailSettings ();
|
||
|
|
$cc = explode ( ':', $email ['value1'] );
|
||
|
|
if ($email ['value1'] != '' && $email ['value2'] != '' && $email ['value3'] != '') {
|
||
|
|
global $sugar_config, $current_user;
|
||
|
|
|
||
|
|
$mailClassS->Host = $cc [0]; // Specify main and backup server
|
||
|
|
$mailClassS->SMTPAuth = true; // Enable SMTP authentication
|
||
|
|
$mailClassS->Username = $email ['value2'];
|
||
|
|
$mailClassS->Password = $email ['value3'];
|
||
|
|
$mailClassS->SMTPSecure = $email ['value5']; // Enable encryption, 'ssl' also accepted
|
||
|
|
$EcmSysInfo = new EcmSysInfo ();
|
||
|
|
|
||
|
|
if ($EcmSysInfo->getDatabaseName () == 'preDb_60b08fe051546309b61d2714d4a0438d') {
|
||
|
|
$mailClassS->AddCC ( 'faktura@matinstal.pl', 'Faktury matinstall' );
|
||
|
|
}
|
||
|
|
$mailClassS->Port = $cc [1]; // Set the SMTP port number - 587 for
|
||
|
|
if ($email ['value4'] != '') {
|
||
|
|
$mailClassS->Sender = $email ['value4'];
|
||
|
|
$mailClassS->From = $email ['value4'];
|
||
|
|
} else {
|
||
|
|
$mailClassS->Sender = $email ['value2'];
|
||
|
|
$mailClassS->From = $email ['value2'];
|
||
|
|
}
|
||
|
|
|
||
|
|
$mailClassS->FromName = $EcmSysInfo->getName ();
|
||
|
|
$mailClassS->WordWrap = 50; // Set word wrap to 50 characters
|
||
|
|
} else {
|
||
|
|
$mailClassS->Host = 'smtp.gmail.com'; // Specify main and backup server
|
||
|
|
|
||
|
|
$mailClassS->SMTPAuth = true; // Enable SMTP authentication
|
||
|
|
$mailClassS->Username = 'biuro@saascrm.pl'; // SMTP username
|
||
|
|
$mailClassS->Password = 'test5555'; // SMTP password
|
||
|
|
$mailClassS->SMTPSecure = 'tls'; // Enable encryption, 'ssl' also accepted
|
||
|
|
$mailClassS->Port = 587; // Set the SMTP port number - 587 for
|
||
|
|
// authenticated TLS
|
||
|
|
}
|
||
|
|
|
||
|
|
foreach ( $to as $ad => $tit ) {
|
||
|
|
$mailClassS->addAddress ( $ad, $tit ); // Add a
|
||
|
|
}
|
||
|
|
|
||
|
|
$mailClassS->WordWrap = 50; // Set word wrap to 50 characters
|
||
|
|
|
||
|
|
$mailClassS->isHTML ( true ); // Set email format to HTML
|
||
|
|
$title = 'Nowa faktura od ' . $EcmSysInfo->getShortName ();
|
||
|
|
$text = "Witam,<br> w załączniku przesyłam fakturę, proszę o potwierdzenie dostarczenia dokumentu ";
|
||
|
|
$mailClassS->Subject = $title;
|
||
|
|
$mailClassS->Body = $text;
|
||
|
|
|
||
|
|
if (file_exists ( '/var/www/html/system/' . $filename )) {
|
||
|
|
|
||
|
|
$mailClassS->addAttachment ( '/var/www/html/system/' . $filename );
|
||
|
|
}
|
||
|
|
|
||
|
|
if (! $mailClassS->send ()) {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
$db = $GLOBALS ['superGlobalDb'];
|
||
|
|
$db->query ( "update ecminvoiceouts set sended=1 where id='" . $id . "'" );
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Tworzy faktury z wyszukanych zamówień
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
function createInvoiceList() {
|
||
|
|
if (count ( $this->document_list ) > 0) {
|
||
|
|
|
||
|
|
foreach ( $this->document_list as $this->pos => $this->value ) {
|
||
|
|
|
||
|
|
$this->createInvoice ( $this->document_list [$this->pos] );
|
||
|
|
if ($this->getParentEmail ( $this->document_list [$this->pos] ['parent_id'] ) != 0) {
|
||
|
|
|
||
|
|
$this->sendSingleEmail ( '', '', $this->getParentEmail ( $this->document_list [$this->pos] ['parent_id'] ), $this->CreateSinglePdf ( $this->id ), $this->id );
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Tworzy faktury z wyszukanych terminów płatności
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
function createInvoicePaymentList() {
|
||
|
|
if (! (count ( $this->document_list ) > 0)) {
|
||
|
|
foreach ( $this->document_list as $this->pos => $this->value ) {
|
||
|
|
if ($this->getParentEmail ( $this->document_list [$this->pos] ['parent_id'] ) != 0) {
|
||
|
|
|
||
|
|
$this->createInvoicePayment ( $this->document_list [$this->pos] );
|
||
|
|
} else {
|
||
|
|
$this->getUserEmail ( $this->document_list [$this->pos] ['created_by'] );
|
||
|
|
$this->createInvoicePayment ( $this->document_list [$this->pos] );
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Tworzy pojedyńczą fakturę, z podanego zamówienia
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
function createInvoice($values) {
|
||
|
|
$inv = new EcmInvoiceOut ();
|
||
|
|
$inv->pdf_type = 'K';
|
||
|
|
$inv->type = 'normal';
|
||
|
|
$inv->register_date = date ( "d.m.Y" );
|
||
|
|
$inv->sell_date = date ( "d.m.Y" );
|
||
|
|
$inv->ecmlanguage = 'pl_pl';
|
||
|
|
|
||
|
|
$values ['currency_id'] != 'PLN' ? $inv->currency_value_nbp = $this->getNBPCurrencyExchange ( $values ['currency_id'], date ( "d.m.Y" ) ) : $inv->currency_value_nbp = '';
|
||
|
|
$inv->currency_id = $values ['currency_id'];
|
||
|
|
|
||
|
|
$stock = new EcmStock ();
|
||
|
|
$stock->retrieve ( $values ['stock_id'] );
|
||
|
|
$inv->stock_id = $values ['stock_id'];
|
||
|
|
$st = new EcmStock ();
|
||
|
|
$st->retrieve ( $values ['stock_id'] );
|
||
|
|
$dbs = $GLOBALS ['superGlobalDb'];
|
||
|
|
$zapps = $dbs->query ( "select value9 from operating_values where id='" . $st->default_bank_id . "'" );
|
||
|
|
$row2 = $dbs->fetchByAssoc ( $zapps );
|
||
|
|
$inv->bankaccount = $row2 ['value9'];
|
||
|
|
$inv->stock_name = $stock->name;
|
||
|
|
unset ( $stock );
|
||
|
|
$inv->category = 'f29423eb-7bb1-5727-b900-55151722bc67';
|
||
|
|
$inv->assigned_user_id = $values ['assigned_user_id'];
|
||
|
|
$inv->modified_user_id = $values ['modified_user_id'];
|
||
|
|
$inv->modified_user_id = $values ['modified_user_id'];
|
||
|
|
|
||
|
|
$payc = new EcmPaymentCondition ();
|
||
|
|
|
||
|
|
$inv->payment_date_days = $values ['payment_date_days'];
|
||
|
|
$payc->retrieve ( $values ['ecmpaymentcondition_id'] );
|
||
|
|
$inv->payment_date = date ( 'd.m.Y', strtotime ( "+" . $values ['payment_date_days'] . " day", strtotime ( date ( "d.m.Y" ) ) ) );
|
||
|
|
|
||
|
|
$inv->payment_method = 'PRZELEW';
|
||
|
|
$inv->payment_method_paid = 0;
|
||
|
|
unset ( $payc );
|
||
|
|
|
||
|
|
$a = new Account ();
|
||
|
|
$a->retrieve ( $values ['parent_id'] );
|
||
|
|
|
||
|
|
$inv->parent_id = $values ['parent_id'];
|
||
|
|
$inv->parent_name = $a->name;
|
||
|
|
$inv->parent_shipping_address_name = $values ['shipping_address_name'];
|
||
|
|
$inv->parent_shipping_address_street = $values ['shipping_address_street'];
|
||
|
|
$inv->parent_shipping_address_postalcode = $values ['shipping_address_postalcode'];
|
||
|
|
$inv->parent_shipping_address_city = $values ['shipping_address_city'];
|
||
|
|
$inv->parent_address_street = $a->register_address_street;
|
||
|
|
$inv->parent_address_city = $a->register_address_city;
|
||
|
|
$inv->parent_address_postalcode = $a->register_address_postalcode;
|
||
|
|
$inv->parent_address_country = $a->register_address_country;
|
||
|
|
$inv->parent_nip = $values ['parent_nip'];
|
||
|
|
|
||
|
|
$this->getPositionList ( $values ['id'] );
|
||
|
|
$inv->position_list = $this->position_list;
|
||
|
|
$inv->save ();
|
||
|
|
$this->id = $inv->id;
|
||
|
|
unset ( $inv );
|
||
|
|
}
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Tworzy pojedyńczą fakturę, z podanego terminu płatności
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
function createInvoicePayment($values) {
|
||
|
|
|
||
|
|
// faktura prowizja
|
||
|
|
$inv = new EcmInvoiceOut ();
|
||
|
|
$inv->pdf_type = 'K';
|
||
|
|
$inv->type = 'normal';
|
||
|
|
$inv->register_date = date ( "d.m.Y" );
|
||
|
|
$inv->sell_date = date ( "d.m.Y" );
|
||
|
|
$inv->ecmlanguage = 'pl_pl';
|
||
|
|
|
||
|
|
$values ['currency_id'] != 'PLN' ? $inv->currency_value_nbp = $this->getNBPCurrencyExchange ( $values ['currency_id'], date ( "d.m.Y" ) ) : $inv->currency_value_nbp = '';
|
||
|
|
$inv->currency_id = $values ['currency_id'];
|
||
|
|
|
||
|
|
$stock = new EcmStock ();
|
||
|
|
$stock->retrieve ( '3da5fb18-fdfe-f878-b7e5-53ce0d41c4b9' );
|
||
|
|
$inv->stock_id = '3da5fb18-fdfe-f878-b7e5-53ce0d41c4b9';
|
||
|
|
$inv->stock_name = $stock->name;
|
||
|
|
unset ( $stock );
|
||
|
|
|
||
|
|
$inv->assigned_user_id = $values ['assigned_user_id'];
|
||
|
|
$inv->modified_user_id = $values ['modified_user_id'];
|
||
|
|
$inv->modified_user_id = $values ['modified_user_id'];
|
||
|
|
|
||
|
|
$payc = new EcmPaymentCondition ();
|
||
|
|
$inv->ecmpaymentcondition_id = 'f194e75a-14a6-ecbe-db89-54c0b2863837';
|
||
|
|
$payc->retrieve ( 'f194e75a-14a6-ecbe-db89-54c0b2863837' );
|
||
|
|
$inv->payment_date = date ( 'd.m.Y', strtotime ( "+" . $payc->days . " day", strtotime ( date ( "d.m.Y" ) ) ) );
|
||
|
|
$inv->payment_method = 'PRZELEW';
|
||
|
|
$inv->payment_method_paid = 0;
|
||
|
|
unset ( $payc );
|
||
|
|
|
||
|
|
$a = new Account ();
|
||
|
|
$a->retrieve ( $values ['parent_id'] );
|
||
|
|
|
||
|
|
$inv->parent_id = $values ['parent_id'];
|
||
|
|
$inv->parent_name = $a->name;
|
||
|
|
$inv->parent_address_street = $a->register_address_street;
|
||
|
|
$inv->parent_address_city = $a->register_address_city;
|
||
|
|
$inv->parent_address_postalcode = $a->register_address_postalcode;
|
||
|
|
$inv->parent_address_country = $a->register_address_country;
|
||
|
|
$inv->parent_nip = $a->vatid;
|
||
|
|
unset ( $a );
|
||
|
|
|
||
|
|
$this->getPositionListPayment ( $values, 1 );
|
||
|
|
$inv->position_list = $this->position_list;
|
||
|
|
$this->return_id = $inv->save ();
|
||
|
|
unset ( $inv );
|
||
|
|
|
||
|
|
// faktura odstetki
|
||
|
|
$inv = new EcmInvoiceOut ();
|
||
|
|
$inv->pdf_type = 'K';
|
||
|
|
$inv->type = 'normal';
|
||
|
|
$inv->register_date = date ( "d.m.Y" );
|
||
|
|
$inv->sell_date = date ( "d.m.Y" );
|
||
|
|
$inv->ecmlanguage = 'pl_pl';
|
||
|
|
|
||
|
|
$values ['currency_id'] != 'PLN' ? $inv->currency_value_nbp = $this->getNBPCurrencyExchange ( $values ['currency_id'], date ( "d.m.Y" ) ) : $inv->currency_value_nbp = '';
|
||
|
|
$inv->currency_id = $values ['currency_id'];
|
||
|
|
|
||
|
|
$stock = new EcmStock ();
|
||
|
|
$stock->retrieve ( '3da5fb18-fdfe-f878-b7e5-53ce0d41c4b9' );
|
||
|
|
$inv->stock_id = '3da5fb18-fdfe-f878-b7e5-53ce0d41c4b9';
|
||
|
|
$inv->stock_name = $stock->name;
|
||
|
|
unset ( $stock );
|
||
|
|
|
||
|
|
$inv->assigned_user_id = $values ['assigned_user_id'];
|
||
|
|
$inv->modified_user_id = $values ['modified_user_id'];
|
||
|
|
$inv->modified_user_id = $values ['modified_user_id'];
|
||
|
|
|
||
|
|
$payc = new EcmPaymentCondition ();
|
||
|
|
$inv->ecmpaymentcondition_id = 'f194e75a-14a6-ecbe-db89-54c0b2863837';
|
||
|
|
$payc->retrieve ( 'f194e75a-14a6-ecbe-db89-54c0b2863837' );
|
||
|
|
$inv->payment_date = date ( 'd.m.Y', strtotime ( "+" . $payc->days . " day", strtotime ( date ( "d.m.Y" ) ) ) );
|
||
|
|
$inv->payment_method = 'PRZELEW';
|
||
|
|
$inv->payment_method_paid = 0;
|
||
|
|
unset ( $payc );
|
||
|
|
|
||
|
|
$a = new Account ();
|
||
|
|
$a->retrieve ( $values ['parent_id'] );
|
||
|
|
|
||
|
|
$inv->parent_id = $values ['parent_id'];
|
||
|
|
$inv->parent_name = $a->name;
|
||
|
|
$inv->parent_address_street = $a->register_address_street;
|
||
|
|
$inv->parent_address_city = $a->register_address_city;
|
||
|
|
$inv->parent_address_postalcode = $a->register_address_postalcode;
|
||
|
|
$inv->parent_address_country = $a->register_address_country;
|
||
|
|
$inv->parent_nip = $a->vatid;
|
||
|
|
unset ( $a );
|
||
|
|
|
||
|
|
$this->getPositionListPayment ( $values, 2 );
|
||
|
|
$inv->position_list = $this->position_list;
|
||
|
|
$this->return_id .= ',' . $inv->save ();
|
||
|
|
unset ( $inv );
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Zrwaca id
|
||
|
|
*/
|
||
|
|
function getReturnId() {
|
||
|
|
return $this->return_id;
|
||
|
|
}
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Wybiera pozycje do faktury z zamówienia
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
function getPositionList($id) {
|
||
|
|
$sale = new EcmSale ();
|
||
|
|
$sale->retrieve ( $id );
|
||
|
|
$this->position_list = $sale->getPositionList ( true );
|
||
|
|
}
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Wybiera pozycje do płatności
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
function getPositionListPayment($values, $type) {
|
||
|
|
if ($type == 1) {
|
||
|
|
$prid = 'a0c0fff9-59e9-2ac1-40d6-54bfbd898819';
|
||
|
|
$price = $values ['rate_of_commission'];
|
||
|
|
} else {
|
||
|
|
$prid = '16a48303-20e3-703e-46d6-54bfbd53ecd5';
|
||
|
|
$price = $values ['interest_rate'];
|
||
|
|
}
|
||
|
|
$p = new EcmProduct ();
|
||
|
|
$p->retrieve ( $prid );
|
||
|
|
$arr [0] = array (
|
||
|
|
'product_id' => $prid,
|
||
|
|
'product_code' => $p->code,
|
||
|
|
'name' => $p->name,
|
||
|
|
'quantity' => '1.00',
|
||
|
|
'price_start' => $price,
|
||
|
|
'price_netto' => $price,
|
||
|
|
'discount' => '0',
|
||
|
|
'total_netto' => $price,
|
||
|
|
'total_brutto' => $price,
|
||
|
|
'total_vat' => '0',
|
||
|
|
'price_brutto' => $price,
|
||
|
|
'unit_id' => '1',
|
||
|
|
'unit_name' => 'szt',
|
||
|
|
'ecmvat_id' => '2f834337-a407-c5c0-0892-54bfbdbd952f',
|
||
|
|
'ecmvat_name' => 'ZW',
|
||
|
|
'ecmvat_value' => '0'
|
||
|
|
);
|
||
|
|
|
||
|
|
$this->position_list = $arr;
|
||
|
|
unset ( $p );
|
||
|
|
unset ( $arr );
|
||
|
|
}
|
||
|
|
|
||
|
|
/*
|
||
|
|
* załaduj dane do zewnętrznej klasy
|
||
|
|
*/
|
||
|
|
function loader($klasa) {
|
||
|
|
foreach ( $this as $key => $value ) {
|
||
|
|
$rp = new ReflectionProperty ( $this, $key );
|
||
|
|
if ($rp->isPrivate () == 1)
|
||
|
|
continue;
|
||
|
|
$klasa->$key = $this->$key;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Pobiera kurs NBP
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
function getNBPCurrencyExchange($c_id, $d) {
|
||
|
|
global $timedate;
|
||
|
|
$d = explode ( '-', reset ( explode ( " ", $timedate->to_db ( $d ) ) ) );
|
||
|
|
$date = date ( "Y-m-d", @mktime ( 0, 0, 0, $d [1], $d [2], $d [0] ) + 3600 * 24 );
|
||
|
|
|
||
|
|
// what day is it?
|
||
|
|
$dn = $GLOBALS ['db']->fetchByAssoc ( $GLOBALS ['db']->query ( "SELECT DAYNAME('$date') as dayname" ) );
|
||
|
|
|
||
|
|
if ($dn ['dayname'] == 'Sunday') // - 2 days
|
||
|
|
$q = "SELECT value FROM currency_nbp_archive WHERE currency_id='$c_id' AND date = DATE_ADD('$date', INTERVAL -2 DAY)";
|
||
|
|
elseif ($dn ['dayname'] == 'Saturday') // - 1 day
|
||
|
|
$q = "SELECT value FROM currency_nbp_archive WHERE currency_id='$c_id' AND date = DATE_ADD('$date', INTERVAL -1 DAY)";
|
||
|
|
else // any other day - just get exchange
|
||
|
|
$q = "SELECT value FROM currency_nbp_archive WHERE currency_id='$c_id' AND date='$date'";
|
||
|
|
|
||
|
|
$w = $GLOBALS ['db']->fetchByAssoc ( $GLOBALS ['db']->query ( $q ) );
|
||
|
|
|
||
|
|
echo $w ['value'];
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
function setReturnId($string) {
|
||
|
|
$this->return_id = $string;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
?>
|