- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
private static function preparePostProperty(&$data, $propName = [], $type = 'float'){
if(!in_array($type, ['float', 'integer', 'string']))
return;
if(is_array($data) && !empty($propName)){
$key = '$data["' . implode('"]["', $propName) . '"]';
@eval("if(isset($key)) $key = ($type)$key;");
}
}
public static function preparePost($data, $documentsObjects = []){
if(is_array($data)){
self::preparePostProperty($data, ['general', 'fromMtender', 'lotDetails', 'lotAmount']);
self::preparePostProperty($data, ['general', 'additionalData', 'budgetDetails', 'amountBrutto']);
self::preparePostProperty($data, ['general', 'additionalData', 'budgetDetails', 'amountNetto']);
self::preparePostProperty($data, ['general', 'additionalData', 'budgetDetails', 'amountPrepayment']);
self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'amountGuarantee']);
self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'amountGE']);
self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'amountWithdraw']);
self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'amountMaxWithdraw']);
self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'transferDuration']);
self::preparePostProperty($data, ['general', 'additionalData', 'bankGuarantee', 'nonPaymentMax']);
self::preparePostProperty($data, ['general', 'additionalData', 'executionShouldStart']);
self::preparePostProperty($data, ['general', 'additionalData', 'executionDuration']);
foreach ($data['subject'] as $k => $subjects){
//data[subject][0][fromMtender][itemQuantity]
self::preparePostProperty($data, ['subject', $k, 'fromMtender', 'itemQuantity']);
self::preparePostProperty($data, ['subject', $k, 'additionalData', 'itemDetails', 'itemPrice', 'unitPrice', 'withoutVAT']);
self::preparePostProperty($data, ['subject', $k, 'additionalData', 'itemDetails', 'itemPrice', 'unitPrice', 'withVAT']);
self::preparePostProperty($data, ['subject', $k, 'additionalData', 'itemDetails', 'itemPrice', 'amountPrice', 'withoutVAT']);
self::preparePostProperty($data, ['subject', $k, 'additionalData', 'itemDetails', 'itemPrice', 'amountPrice', 'withVAT']);
foreach ($subjects['additionalData']['budget'] as $kb => $budgets){
self::preparePostProperty($data, ['subject', $k, 'additionalData', 'budget', $kb, 'budgetAmount']);
}
}
self::preparePostProperty($data, ['ca', 'additionalData', 'caPerson', 'caPersonCode']);
self::preparePostProperty($data, ['eo', 'fromMtender', 'eoCode']);
self::preparePostProperty($data, ['eo', 'additionalData', 'eoLicenses', 'eoValidityDuration']);
self::preparePostProperty($data, ['eo', 'additionalData', 'eoPerson', 'eoPersonCode']);
self::preparePostProperty($data, ['otherConditions', 'sla', 'deliveryDelayLiability', 'liabilityPercent']);
self::preparePostProperty($data, ['otherConditions', 'sla', 'deliveryDelayLiability', 'liabilityPercentMax']);
self::preparePostProperty($data, ['otherConditions', 'sla', 'paymentDelayLiability', 'liabilityPercent']);
self::preparePostProperty($data, ['otherConditions', 'sla', 'paymentDelayLiability', 'liabilityPercentMax']);
self::preparePostProperty($data, ['otherConditions', 'sla', 'maxPenalty']);
self::preparePostProperty($data, ['otherConditions', 'sla', 'maxDelay']);
self::preparePostProperty($data, ['otherConditions', 'sla', 'warrantyPeriod']);
self::preparePostProperty($data, ['otherConditions', 'timeline', 'informOnSigned']);
self::preparePostProperty($data, ['otherConditions', 'timeline', 'informOnFM']);
self::preparePostProperty($data, ['otherConditions', 'timeline', 'informOnTermination']);
self::preparePostProperty($data, ['otherConditions', 'timeline', 'respondOnTermination']);
self::preparePostProperty($data, ['otherConditions', 'timeline', 'submitClaimsMax']);
self::preparePostProperty($data, ['otherConditions', 'timeline', 'respondClaimsMax']);
self::preparePostProperty($data, ['otherConditions', 'timeline', 'deliverOnClaims']);
}
self::appendPostDocuments($data, $documentsObjects);
return $data;
}