Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include FRData.vih
- #include FeeSigners.vih
- #include FRRecordDefinition.vih
- #Component "L_BASEDOC"
- Interface FRPrintInvt 'Печать СФ в FastReport' EscClose, Cyan;
- Show at (,,64,6);
- Const
- FormatSum : String = '666666666.88';
- FormatKol : String = '666666666.899';
- End;
- Table struct tbSPInvPack (
- NameGroupMC : String
- ,NameGroupMCEN : String
- ,BARKOD : String
- ,Kolvo : Double
- ,PriceNoNDS : Double
- ,NDS : String
- ,SumWithNDS : Double
- ,SumNoNDS : Double
- ,SumNDS : Double
- ,COrigin : String
- )
- With index (
- tbSPInvPack_00 = BARKOD
- );
- Table struct tbGrSPInv (
- NumGroupMC : Word
- ,NameGroupMC : String
- ,NameGroupMCEN : String
- ,NameGroupMCPack : String
- ,NameGroupMCPackEN : String
- ,TNVED : String
- ,ShortTNVED_MC : String
- ,TNVED_MC : String
- ,enTNVED_MC : String
- ,EdOtp : String
- ,EdOtpEN : String
- ,EdUch : String
- ,EdUchEN : String
- ,EDIzm : String
- ,EDIzmEN : String
- ,Kolvo : Double
- ,Kolvo1 : Double
- ,Packages : Double
- ,NetW : Double
- ,GrossW : Double
- ,OpisMC : String
- ,pRow : Double
- ,TNVEDShortName : String
- ,ob_p : Double
- )
- With index (
- tbGrSPInv_00 = NumGroupMC
- // tbGrSPInv_00 = ShortTNVED_MC
- );
- Table struct tbSPInv (
- Name : String
- ,NameEN : String
- ,TNVED : String
- ,SokrTNVED : String
- ,Kolvo : String
- ,cGroupMC : Comp
- ,EdOtp : String
- ,KoefOtp : Double
- ,EdUch : String
- ,EDIzm : String
- ,EDIzmEN : String
- ,PriceNoNDS : String
- ,SumNoNDS : String
- ,SumNDS : String
- ,NDS : String
- ,SumWithNDS : String
- ,COrigin : String
- ,NumGroupMC : Word
- ,NameGroupMC : String
- ,OBOZN : String
- ,volume : Double
- ,kBoxMc : Double
- ,kAktMc : Double
- ,ob_p : Double
- )
- With index (
- tbSPInv_00 = Name
- ,tbSPInv_01 = NumGroupMC
- );
- Table struct tPickDoc (
- cRec : Comp
- )
- With index (
- tPickDoc_00 = cRec
- );
- Create view vFRPrintInv
- Var
- FReport, grRowCount : LongInt;
- ReportName : String;
- FRSuccess, FormDone, PrSopr, PrZalog, PrUkraine, PrUzbek : Boolean;
- GrossWPackPL, GrossWPackSI, WPackSI, WPack, GrossWPackSeat, WPackPL, KolPackPL, KolPackSI,
- TotalSumNoNDS, TotalSumNoNDSEngl,
- TotalSumNDS, TotalSumNDSEngl,
- TotalSumWithNDS, TotalSumWithNDSEngl, SumZalog, mSid, wBrikPallets, colBrikPod : Double;
- i : Integer;
- dPackages_1, dPackages_2, dPackages_3, dPackages_4,
- dPackages_5, dPackages_6, dPackages_7, dPackages_8,
- dPackages_9, dPackages_10, dPackages_11, dPackages_12,
- dPackages_13, dPackages_14, dPackages_15, dPackages_16,
- vPackages, PalletSan, PalletPlit, pPallet,kolPalletKir,GrossWPallet,GrossWPalletS, vesPod, packet: Double;
- TabNum : LongInt;
- ccBaseDoc, ccPerson, GroupFeeSign, CVAL : Comp;
- MyOrg, IndexMyOrg, UNNMyOrg, AddrMyOrg, AddrMyOrgTotal,
- OrgGruzPol,OrgGruzPolEngl, IndexGruzPol, AddrGruzPol, AddrGruzPolTotal, AddrGruzPolTotalEngl,
- OrgGruzOtpr, IndexGruzOtpr, AddrGruzOtpr, AddrGruzOtprTotal, SpMCName,
- BuyOrg, IndexBuyOrg, UNNBuyOrg, AddrBuyOrg, AddrBuyOrgTotal, AddrBuyOrgTotalEngl, NumSoprRailway,
- vCurrency, vSimvolV ,Container, NumVagon, StationOtpr,StationOtprEngl, NumDatePlat, DateDoc, NumSopr,
- ZagPrice,ZagPriceEN, NamePerson, NameDocSF, NameDocSFEN, DelConditions, DelConditionsEngl,
- TNVEDShort, TNVEDShortName,Transport, cityTo,cityFrom , telGruzPol: String;
- iFeeSigners : FeeSigners;
- DialogParam : frxChoiceDialogParam;
- //Реквизиты Банка
- OptInv, ReportId, nresult, nresult2 : Word;
- PrMyBankSwift, PrBankCorr, InclSeat, setSeat : Boolean;
- pr_obl ,pr_gl ,pr_ng ,pr,pr_sanizd, isPrintReqiz, showPasport, showSertConf, showSertOrigin, showDeclConf: Integer;
- MyBankName, MyBankAddr, MyBankSwift, MyBankAcc, CorrBankAcc, CorrBankName, CorrBankSwift, sANamBankMy, sExClNam, sExClNamEngl,
- custName, custCountry, custAddress : String;
- As select *
- From
- BaseDoc (ReadOnly),
- KatOrg MyOrg (ReadOnly),
- KatOrg KatOrgBuy (ReadOnly),
- KatOrg KatOrgOtpr (ReadOnly),
- KatOrg KatOrgPol (ReadOnly),
- KatState KatStatePol (ReadOnly), //Каталог стран
- KatCity KatCityPol (ReadOnly), //Каталог городов
- StepDoc (ReadOnly),
- KatSopr (ReadOnly), //Шапка накладных и пр.
- SpSopr (ReadOnly),
- Dogovor (ReadOnly),
- KlVal (ReadOnly),
- SpStep (ReadOnly),
- Dores (ReadOnly),
- KatPodr (ReadOnly),
- KatMC (ReadOnly),
- KatMC KatMCPack (ReadOnly),
- KlPrice (ReadOnly),
- KatOtpEd (ReadOnly),
- KatOtpEd KatOtpEdPack (ReadOnly),
- KatOtpEd KatOtpEdBox (ReadOnly), //для определения объемов
- KatOtpEd KatOtpEdAkt (ReadOnly), //для определения объемов
- KatED (ReadOnly),
- KatBank KatBankMy (ReadOnly),
- KatBank KatBankCorr (ReadOnly),
- KatB KatBMy (ReadOnly),
- AttrNam ANamCont (ReadOnly),
- AttrNam ANamSreds (ReadOnly),
- AttrNam ANamCO (ReadOnly),
- AttrNam ANamKatBMy (ReadOnly),
- AttrNam ANamCorr (ReadOnly),
- AttrNam ANamTransp (ReadOnly),
- AttrNam ANamDest (ReadOnly),
- AttrNam ANamTrailer (ReadOnly),
- AttrNam ANamAvto (ReadOnly),
- AttrNam ANamCargo (ReadOnly),
- AttrNam ANamKatOrgName (ReadOnly),
- AttrVal AValKatOrgName (ReadOnly),
- AttrNam ANamKatOrgAddr (ReadOnly),
- AttrVal AValKatOrgAddr (ReadOnly),
- AttrNam ANamKatOrgAddrEngl (ReadOnly),
- AttrVal AValKatOrgAddrEngl (ReadOnly),
- AttrVal AValTrailer (ReadOnly),
- AttrVal AValAvto (ReadOnly),
- AttrVal AValBackCargo (ReadOnly),
- //AttrNam ANnumCMR (ReadOnly),
- AttrVal AValCont (ReadOnly),
- AttrVal AValSreds (ReadOnly),
- AttrVal AValCO (ReadOnly),
- AttrVal AValKatBMy (ReadOnly),
- AttrVal AValCorr (ReadOnly),
- AttrVal AValTransp (ReadOnly),
- AttrVal AValDest (ReadOnly),
- //AttrVal AVnumCMR (ReadOnly),
- AttrNam ANamTipOgr (ReadOnly),
- AttrVal AValTipOgr (ReadOnly),
- BaseFin (ReadOnly),
- PlPor (ReadOnly), //Платежные документы
- TTNDoc (ReadOnly),
- shipment (ReadOnly),
- TipOtg (ReadOnly), //Каталог базисов поставки
- Marpunkt (ReadOnly), //Справочник пунктов маршрутов
- Persons (ReadOnly),
- Appointments (ReadOnly), //Назначения и перемещения
- Catalogs (ReadOnly), //Каталоги
- ExClassName ExClNamBD (ReadOnly), //Внешние классификаторы 2
- ExClassSeg ExClSegBD (ReadOnly), //Сегменты внешнего классификатора
- ExClassVal ExClValBD (ReadOnly), //Классификационные коды
- ExClassName ExClNamBDEngl (ReadOnly), //Внешние классификаторы 2
- ExClassSeg ExClSegBDEngl (ReadOnly), //Сегменты внешнего классификатора
- ExClassVal ExClValBDEngl (ReadOnly), //Классификационные коды
- CATALPSD ENGL (ReadOnly),
- tbGrSPInv (tbGrSPInv_00),
- tbSPInv (tbSPInv_00),
- tbSPInvPack (tbSPInvPack_00),
- tPickDoc (tPickDoc_00)
- Where
- ((
- tbGrSPInv.NumGroupMC == tbSPInv.NumGroupMC and
- coGetTune('MYORG') == MyOrg.NRec and
- //ccBaseDoc == BaseDoc.NRec and
- //tPickDoc.cRec == BaseDoc.NRec and
- BaseDoc.NRec == tPickDoc.cRec and
- BaseDoc.cOrg == KatOrgBuy.NRec and
- BaseDoc.CGROTPR == KatOrgOtpr.nRec and
- BaseDoc.CGRPOL == KatOrgPol.nRec and
- KatOrgPol.cState == KatStatePol.NRec and
- KatOrgPol.cCity == KatCityPol.NRec and
- BaseDoc.NRec == StepDoc.cBaseDoc and
- StepDoc.NRec == KatSopr.cStepDoc and
- BaseDoc.cDogovor == Dogovor.NRec and
- BaseDoc.cVal == KlVal.NRec and
- BaseDoc.cMyBank == KatBankMy.NRec and
- KatBankMy.cBank == KatBMy.NRec and
- //название организации грузополучателя на английском, если надо основное на русском 19-03-2019
- Word(1418) == ANamKatOrgName.wTable and
- 'Падеж творительный' == ANamKatOrgName.Name and
- Word(1418) == AValKatOrgName.wTable and
- KatOrgPol.nRec == AValKatOrgName.cRec and
- ANamKatOrgName.nrec == AValKatOrgName.cAttrNam and
- //Юридический адрес грузополучателя на английском, если надо основное на русском 19-03-2019
- Word(1418) == ANamKatOrgAddr.wTable and
- 'Юридический адрес' == ANamKatOrgAddr.Name and
- Word(1418) == AValKatOrgAddr.wTable and
- KatOrgPol.nRec == AValKatOrgAddr.cRec and
- ANamKatOrgAddr.nrec == AValKatOrgAddr.cAttrNam and
- //адрес организации на английском
- Word(1418) == ANamKatOrgAddrEngl.wTable and
- 'Адрес English' == ANamKatOrgAddrEngl.Name and
- Word(1418) == AValKatOrgAddrEngl.wTable and
- KatOrgBuy.NRec == AValKatOrgAddrEngl.cRec and
- ANamKatOrgAddrEngl.nrec == AValKatOrgAddrEngl.cAttrNam and
- //Базис поставки ENGL
- Word(1727) == ANamTipOgr.wTable and
- 'Название2' == ANamTipOgr.Name and
- Word(1727) == AValTipOgr.wTable and
- TipOtg.nRec == AValTipOgr.cRec and
- ANamTipOgr.nrec == AValTipOgr.cAttrNam and
- Word(1422) == ANamKatBMy.wTable and
- sANamBankMy == ANamKatBMy.Name and
- Word(1422) == AValKatBMy.wTable and
- KatBMy.NRec == AValKatBMy.cRec and
- ANamKatBMy.NRec == AValKatBMy.cAttrNam and
- //Банк-корреспондент
- Word(1102) == ANamCorr.wTable and
- 'Банк корреспондент' == ANamCorr.Name and
- Word(1102) == AValCorr.wTable and
- BaseDoc.NRec == AValCorr.cRec and
- ANamCorr.nrec == AValCorr.cAttrNam and
- AValCorr.vComp == KatBankCorr.NRec and
- StepDoc.NRec == SpStep.cStepDoc and
- //SpStep.cPriceList /== KlPrice.NRec and
- SpStep.cPriceList == KlPrice.NRec and
- Word(1102) == ANamCont.wTable and
- 'Контейнер' == ANamCont.Name and
- Word(1102) == AValCont.wTable and
- BaseDoc.NRec == AValCont.cRec and
- ANamCont.NRec == AValCont.cAttrNam and
- Word(1102) == TTNDoc.WTABLE and
- BaseDoc.NRec == TTNDoc.CDOC and
- TTNDoc.cTipOtg == TipOtg.NRec and
- TTNDoc.cPunktr == Marpunkt.NRec and
- Word(1109) == ANamSreds.wTable and
- 'Средства пакетирования' == ANamSreds.Name and
- Word(1109) == AValSreds.wTable and
- KatSopr.NRec == AValSreds.cRec and
- ANamSreds.nrec == AValSreds.cAttrNam and
- //СПОСОБ ТРАНСПОРТИРОВКИ
- Word(1150) == ANamTransp.wTable and
- 'СПОСОБ ТРАНСПОРТИРОВКИ' == ANamTransp.Name and
- Word(1150) == AValTransp.wTable and
- TTNDoc.NRec == AValTransp.cRec and
- ANamTransp.nrec == AValTransp.cAttrNam and
- //Станция (место) назначения:
- Word(1150) == ANamDest.wTable and
- 'АДРЕС ПУНКТА РАЗГРУЗКИ' == ANamDest.Name and
- Word(1150) == AValDest.wTable and
- TTNDoc.NRec == AValDest.cRec and
- ANamDest.nrec == AValDest.cAttrNam and
- //ВОДИТЕЛЬ
- Word(1150) == ANamTrailer.wTable and
- 'ВОДИТЕЛЬ' == ANamTrailer.Name and
- Word(1150) == AValTrailer.wTable and
- TTNDoc.NRec == AValTrailer.cRec and
- ANamTrailer.nrec == AValTrailer.cAttrNam and
- //АВТОМОБИЛЬ
- Word(1150) == ANamAvto.wTable and
- 'АВТОМОБИЛЬ' == ANamAvto.Name and
- Word(1150) == AValAvto.wTable and
- TTNDoc.NRec == AValAvto.cRec and
- ANamAvto.nrec == AValAvto.cAttrNam and
- //ПРИЦЕП1
- Word(1150) == ANamCargo.wTable and
- 'ПРИЦЕП1' == ANamCargo.Name and
- Word(1150) == AValBackCargo.wTable and
- TTNDoc.NRec == AValBackCargo.cRec and
- ANamCargo.nrec == AValBackCargo.cAttrNam and
- BaseDoc.NRec == BaseFin.cBaseDoc and
- BaseFin.cPlPor == PlPor.NRec and
- //Классификатор Способ закупки
- Word(1102) == ExClNamBD.wTable and
- sExClNam == ExClNamBD.Name and
- ExClNamBD.Classcode == ExClValBD.Classcode and
- Word(1102) == ExClValBD.wTable and
- BaseDoc.NRec == ExClValBD.cRec and
- ExClValBD.cClassSeg == ExClSegBD.NRec and
- //Классификатор Способ закупки English
- Word(1102) == ExClNamBDEngl.wTable and
- sExClNamEngl == ExClNamBDEngl.Name and
- ExClNamBDEngl.Classcode == ExClValBDEngl.Classcode and
- Word(1102) == ExClValBDEngl.wTable and
- BaseDoc.NRec == ExClValBDEngl.cRec and
- ExClValBDEngl.cClassSeg == ExClSegBDEngl.NRec and
- //Спецификация
- Word(1) == SpStep.PrMC and
- SpStep.cMCUsl == KatMC.NRec and
- KatMC.cGroupMC == GroupMC.NRec and
- SpStep.cOtpEd == KatOtpEd.NRec and
- KatMC.cED == KatED.NRec and
- KatSopr.NRec == SpSopr.cSopr and
- SpSopr.cMCUsl == KatMCPack.NRec and
- SpStep.NRec == Dores.cspstep and
- Dores.cpodr == KatPodr.NRec and
- //поддоны
- SpStep.cMCUsl == KatOtpEdPack.cMCUsl and
- Word(1) == KatOtpEdPack.PrMC and
- 'Поддон' == KatOtpEdPack.Name and
- //Ящик // коэффициент ящиков (для расчета объема)
- SpStep.cMCUsl == KatOtpEdBox.cMCUsl and
- Word(1) == KatOtpEdBox.PrMC and
- 'Ящик' == KatOtpEdBox.Name and
- //Активная ед измерения // коэффициент активной ед. измерения (для расчета объема)
- SpStep.cMCUsl == KatOtpEdAkt.cMCUsl and
- Word(1) == KatOtpEdAkt.PrMC and
- Word(1) == KatOtpEdAkt.AKT and
- Word(1411) == ANamCO.wTable and
- 'Страна происхождения' == ANamCO.Name and
- Word(1411) == AValCO.wTable and
- KatMC.NRec == AValCO.cRec and
- ANamCO.NRec == AValCO.cAttrNam and
- //подписанты
- 'С' == Persons.iSEMPLOYEE and
- TabNum == Persons.TabNMB and
- ccPerson == Appointments.PERSON and
- Cur_Date >>= Appointments.APPOINTDATE and
- Appointments.Post == Catalogs.NRec and
- TTNDOC.CSHIPMENT == SHIPMENT.NREC and
- KATMC.NREC == ENGL.CREC
- ))
- And Appointments.lprizn = 0
- and Appointments.TYPEMOVE = 0
- ;
- Var
- arSign_Name : Array [1..3] of String;
- arSign_Posit : Array [1..3] of String;
- arPackages : Array [1..16] of Double;
- Procedure ArrayToVar;
- {
- dPackages_1 := arPackages[1];
- dPackages_2 := arPackages[2];
- dPackages_3 := arPackages[3];
- dPackages_4 := arPackages[4];
- dPackages_5 := arPackages[5];
- dPackages_6 := arPackages[6];
- dPackages_7 := arPackages[7];
- dPackages_8 := arPackages[8];
- dPackages_9 := arPackages[9];
- dPackages_10 := arPackages[10];
- dPackages_11 := arPackages[11];
- dPackages_12 := arPackages[12];
- dPackages_13 := arPackages[13];
- dPackages_14 := arPackages[14];
- dPackages_15 := arPackages[15];
- dPackages_16 := arPackages[16];
- }
- Procedure VarToArray;
- {
- arPackages[1] := dPackages_1;
- arPackages[2] := dPackages_2;
- arPackages[3] := dPackages_3;
- arPackages[4] := dPackages_4;
- arPackages[5] := dPackages_5;
- arPackages[6] := dPackages_6;
- arPackages[7] := dPackages_7;
- arPackages[8] := dPackages_8;
- arPackages[9] := dPackages_9;
- arPackages[10] := dPackages_10;
- arPackages[11] := dPackages_11;
- arPackages[12] := dPackages_12;
- arPackages[13] := dPackages_13;
- arPackages[14] := dPackages_14;
- arPackages[15] := dPackages_15;
- arPackages[16] := dPackages_16;
- }
- Procedure GetArrayPackages;
- {
- Case KatMC.TNVED of
- '6907211000': arPackages[4] += vPackages;
- '6907219001': arPackages[7] += vPackages;
- '6907219003': arPackages[6] += vPackages;
- '6907219009': arPackages[5] += vPackages;
- '6907221000': arPackages[9] += vPackages;
- '6907229009': arPackages[8] += vPackages;
- '6907239005': arPackages[2] += vPackages;
- '6907239009': arPackages[1] += vPackages;
- '6907309001': arPackages[3] += vPackages;
- '7016100000': arPackages[14] += vPackages;
- //Не входят в группу
- '6910100000': arPackages[10] := KolPackSI;
- '3922200000': {If not setSeat {
- setSeat := true //признак выбрана ли опция
- If Message('Код ТНВЭД: 3922200000 (сиденья). Выделить грузоместо под сиденье?',YesNo) = cmYes
- {
- InclSeat := true //признак ответа yes
- KolPackSI := KolPackSI-1; //санизделия
- arPackages[11] := 1; //сиденья
- pr := 1;
- } //end Message
- else if InclSeat{
- KolPackSI := KolPackSI-1; //санизделия
- arPackages[11] := 1; //сиденья
- pr := 1;
- }
- } //end If not setSeat
- }
- '8481599000': { If Message('Код ТНВЭД: 8481599000 (арматура). Выделить грузоместо под арматуру?',YesNo) = cmYes
- {
- KolPackSI :=KolPackSI-1; //арматура
- arPackages[12] := 1;
- GrossWPackSI := GrossWPackSI - WPackSI;
- }
- }
- '6904100000': {
- arPackages[13] := 0;
- }
- '3207408000': arPackages[15] += vPackages;
- End;
- //message(arPackages[1]);
- }
- //Запрос перечня включенных документов
- Procedure PrintSopr;
- {
- if (optInv = Word(2)) //Диалоговые окна CMR
- {
- If Message('Внести паспорт в перечень сопроводительных документов?',YesNo)=cmYes
- showPasport := 1;
- Else
- showPasport := 0;
- If Message('Внести сертификат соответствия в перечень сопроводительных документов?',YesNo)=cmYes
- showSertConf := 1;
- Else
- showSertConf := 0;
- If Message('Внести сертификат страны происхождения в перечень сопроводительных документов?',YesNo)=cmYes
- showSertOrigin := 1;
- Else
- showSertOrigin := 0;
- If Message('Внести декларацию соответствия в перечень сопроводительных документов?',YesNo)=cmYes
- showDeclConf := 1;
- Else
- showDeclConf := 0;
- }
- } //PrintSopr
- procedure alerNrec(kodNrec: MasVidSopr);
- {
- for (i := 1; i<= count (kodNrec); i := i+1){
- ClearBuffer(#tPickDoc);
- if (kodNrec[i] <> comp(0) and kodNrec[i] <> 0) {
- tPickDoc.cRec := kodNrec[i];
- message('внутри цикла заполнения tPickDoc '+ kodNrec[i])
- }
- Insert current tPickDoc;
- message('alerNrec inserted to tPickDoc '+ kodNrec[i])
- }
- };
- //берет готовый или в случае отсутствия генерирует номер CMR
- function addCmrNum : String;
- { if (optInv = Word(2)) //CMR
- {
- var stmt : LongInt;
- result := 'XXXX' //так было в старом ресурсе
- stmt := sqlAllocStmt;
- sqlBindCol(stmt, 1, nresult);
- sqlBindParam(stmt, 1, basedoc.nrec);
- sqlExecStmt (stmt, 'select top 1 F_SEQ_DO_TD_PLITKA (?) from basedoc');
- if sqlFetch(stmt) = tsOk {
- nresult2 := string(nresult);
- sqlFreeStmt(stmt);
- result := nresult2}
- }
- } //addCmrNum
- //определяем условия оплаты
- Function getPaymCond(shipmentName : String) : String;
- {
- var pos_cond : integer;
- if (instr('условиях', shipmentName)<>0){
- pos_cond:= instr('условиях',shipmentName);
- Result := trim(substr(shipmentName,pos_cond+8,length(shipmentName)-pos_cond+1));
- } /*else {message('Не указаны условия поставки по международной классификации.');
- Result := ''} */ //включить если попросят
- } //getPaymCond
- //определяем краткие имена кодов для вывода в CMR
- Function nameMcCMR(kodTNVED : String) : String;
- {
- Var TNVEDShortName : String;
- Case kodTNVED of
- '6907239009': TNVEDShortName := 'Плитки глаз.';
- '6907239005': TNVEDShortName := 'Плитки глаз.';
- '6907309001': TNVEDShortName := 'Ковры мозаич.';
- '6907211000': TNVEDShortName := 'Плитки неглаз.';
- '6907219009': TNVEDShortName := 'Плитки глаз.';
- '6907219003': TNVEDShortName := 'Плитки глаз.';
- '6907219001': TNVEDShortName := 'Плитки глаз.';
- '6907229009': TNVEDShortName := 'Плитки глаз.';
- '6907221000': TNVEDShortName := 'Плитки неглаз.';
- '6910100000': TNVEDShortName := 'Санизделия';
- '3922200000': TNVEDShortName := 'Сидения';
- '8481599000': TNVEDShortName := 'Арматура';
- '6904100000': TNVEDShortName := 'Кирпич керамический';
- '7016100000': TNVEDShortName := 'Изд. из стекла';
- '3207408000': TNVEDShortName := 'Фритта';
- '7324900000','7318190009','3926909709': tbGrSPInv.TNVEDShortName := 'Крепление';
- else
- TNVEDShortName := 'новый код ТНВЭД';
- End;
- Result := TNVEDShortName;
- } //nameMcCMR
- //функция склонения слова "мест"
- Function declensionPackages(kolPackages : Word) : String;
- {
- Var PackagesDec : string;
- var strkolPackages: string;
- if (Length(kolPackages)>=2)
- strkolPackages:=substr(kolPackages,Length(kolPackages)-1,Length(kolPackages));
- else
- {
- strkolPackages:=(kolPackages);
- }
- if (strkolPackages = 11 or
- strkolPackages = 12 or
- strkolPackages = 13 or
- strkolPackages = 14 ) {
- PackagesDec := 'мест'
- } else {
- strkolPackages := substr(strkolPackages,Length(strkolPackages),1);
- Case (strkolPackages) of
- 1 : { PackagesDec := 'место'; }
- 2 : { PackagesDec := 'места'; }
- 3 : { PackagesDec := 'места'; }
- 4 : { PackagesDec := 'места'; }
- else PackagesDec := 'мест';
- End;
- }
- Result := PackagesDec;
- };//declensionPackages
- Procedure UpdateTbGrSPInv;
- {
- If GetFirst tbGrSPInv = tsOk
- {
- _Loop tbGrSPInv
- {
- Case tbGrSPInv.TNVED_MC of
- '6907239009': tbGrSPInv.Packages := arPackages[1];
- '6907239005': tbGrSPInv.Packages := arPackages[2];
- '6907309001': tbGrSPInv.Packages := arPackages[3];
- '6907211000': tbGrSPInv.Packages := arPackages[4];
- '6907219009': tbGrSPInv.Packages := arPackages[5];
- '6907219003': tbGrSPInv.Packages := arPackages[6];
- '6907219001': tbGrSPInv.Packages := arPackages[7];
- '6907229009': tbGrSPInv.Packages := arPackages[8];
- '6907221000': tbGrSPInv.Packages := arPackages[9];
- '6910100000': { tbGrSPInv.Packages := arPackages[10];
- tbGrSPInv.TNVED_MC := 'Санизд.: '+tbGrSPInv.TNVED_MC;
- tbGrSPInv.enTNVED_MC := ' English.: '+tbGrSPInv.enTNVED_MC;
- }
- '3922200000': { tbGrSPInv.Packages := arPackages[11];
- tbGrSPInv.TNVED_MC := 'Сидения: '+tbGrSPInv.TNVED_MC;
- tbGrSPInv.enTNVED_MC := ' English.: '+tbGrSPInv.enTNVED_MC;
- KolPackSI := KolPackSI - arPackages[11];
- GrossWPackSI := GrossWPackSI - (WPackSI * arPackages[11]);
- GrossWPackSeat := WPackSI;
- }
- '8481599000': { tbGrSPInv.Packages := arPackages[12];
- tbGrSPInv.TNVED_MC := 'Арматура: '+tbGrSPInv.TNVED_MC;
- tbGrSPInv.enTNVED_MC := ' English.: '+tbGrSPInv.enTNVED_MC;
- }
- '6904100000': { tbGrSPInv.Packages := arPackages[13];
- tbGrSPInv.TNVED_MC := 'Кирпич: '+tbGrSPInv.TNVED_MC;
- tbGrSPInv.enTNVED_MC := ' English.: '+tbGrSPInv.enTNVED_MC;
- }
- '7016100000': tbGrSPInv.Packages := arPackages[14];
- '3207408000': { tbGrSPInv.Packages := arPackages[15];
- tbGrSPInv.TNVED_MC := 'Фритта: '+tbGrSPInv.TNVED_MC;
- tbGrSPInv.enTNVED_MC := ' English.: '+tbGrSPInv.enTNVED_MC;
- }
- '7324900000','7318190009','3926909709':
- {
- tbGrSPInv.Packages := 0;
- tbGrSPInv.TNVED_MC := 'Крепление: '+tbGrSPInv.TNVED_MC;
- tbGrSPInv.enTNVED_MC := ' English.: '+tbGrSPInv.enTNVED_MC;
- }
- '8481801900':
- {
- tbGrSPInv.Packages := 0;
- tbGrSPInv.TNVED_MC := 'Комплект: '+tbGrSPInv.TNVED_MC;
- tbGrSPInv.enTNVED_MC := ' English.: '+tbGrSPInv.enTNVED_MC;
- }
- End;
- //message(tbGrSPInv.Packages + 'qq');
- //Веса
- If ( tbGrSPInv.TNVED_MC = 'Санизд.: 6910100000'){ //сантехник
- tbGrSPInv.GrossW := tbGrSPInv.GrossW + GrossWPackSI ; //+арматура
- }
- Else
- {
- If ( tbGrSPInv.TNVED_MC = 'Сидения: 3922200000' And GrossWPackSeat > 0 ) //сидения
- tbGrSPInv.GrossW := tbGrSPInv.GrossW + GrossWPackSeat*tbGrSPInv.Packages;
- Else
- {
- If (tbGrSPInv.TNVED_MC = '4819100000')
- {
- tbGrSPInv.TNVED_MC := 'Ящики картон.: '+tbGrSPInv.TNVED_MC;
- tbGrSPInv.enTNVED_MC := 'English.: '+tbGrSPInv.enTNVED_MC;
- If ( GrossWPackSI<>0 )
- tbGrSPInv.GrossW := tbGrSPInv.GrossW + GrossWPackSI;
- If ( GrossWPackPL<>0 )
- tbGrSPInv.GrossW := tbGrSPInv.GrossW + GrossWPackPL;
- }
- Else
- {
- If (PrUkraine)
- tbGrSPInv.GrossW := Round(tbGrSPInv.GrossW + tbGrSPInv.Packages*WPackPL,0);
- Else
- {
- WPack := WPack+If(KolPackPL<>0,Round(tbGrSPInv.Packages*GrossWPackPL/KolPackPL,0),0)
- tbGrSPInv.GrossW := tbGrSPInv.GrossW+If(KolPackPL<>0,Round(tbGrSPInv.Packages*GrossWPackPL/KolPackPL,0),0)
- } // вес поддонов по плитке распределяем пропорцион-но кол-ву по ТНВЭД , т.к. в счете могут быть поддоны с разным весом
- }
- If ( tbGrSPInv.TNVED_MC = '7016100000' Or Substr(tbGrSPInv.TNVED_MC,1,4) = '6907' )
- tbGrSPInv.TNVED_MC := 'Итого '+tbGrSPInv.TNVED_MC;
- tbGrSPInv.enTNVED_MC := 'Total'+tbGrSPInv.enTNVED_MC;
- If ( WPack > GrossWPackPL And Not PrUkraine )
- tbGrSPInv.GrossW := tbGrSPInv.GrossW - (WPack - GrossWPackPL);
- }
- }
- If( tbGrSPInv.TNVED_MC = '4819100000' )
- tbGrSPInv.GrossW := tbGrSPInv.NetW;
- Update current tbGrSPInv;
- }
- }
- }
- Procedure saveInLogTable (vFORMNAME : String; vEVENT : String; vPARAMS : String; vCOMMENT : String);
- {
- var stmt : LongInt;
- var StrResult : Integer;
- var sGetDescr, sGetUserId : String;
- // получаем дескриптор сотрудника запустившего интерфейс
- sGetDescr := trim(sGetTune('user.descr'));
- sGetUserId := String(UserId);
- stmt := sqlAllocStmt;
- sqlBindCol(stmt, 1, StrResult);
- sqlBindParam(stmt, 1, sGetUserId);
- sqlBindParam(stmt, 2, ' ');
- sqlBindParam(stmt, 3, vFORMNAME);
- sqlBindParam(stmt, 4, vEVENT);
- //по умолчанию данные входные параметры могут не указываться
- sqlBindParam(stmt, 5, vCOMMENT);
- sqlBindParam(stmt, 6, vPARAMS);
- sqlBindParam(stmt, 7, '24_0005');
- sqlBindParam(stmt, 8, sGetDescr);
- //вызов хранимой функции
- sqlExecStmt(stmt, 'select top 1 F_LOG_FORMS(:P1,:P2,:P3,:P4,:P5,:P6,:P7,:P8) FROM DUAL');
- if sqlFetch(stmt) != tsOk then {Message('Ошибка вызова процедуры saveInLogTable. Код sqlFetch: ' + string(sqlErrorCode(stmt)));}
- sqlFreeStmt(stmt);
- }
- Window WnPlace_num'Ввод количества мест-поддонов' Cyan, Doaccept;
- show at (,,62,10);
- Screen scParams 'Ввод количества мест-поддонов';
- Show at (,,60,9);
- Fields
- colBrikPod:[3,'%[0:999]{000}'], noprotect;
- Buttons
- cmOK, Default,,,;
- cmCancel,,,,;
- <<'Введите количество мест-поддонов'
- Количество мест(поддонов) .@@@
- <. OK .> <. Отмена .>
- >>
- end;
- Handleevent
- cmOK:
- {
- CloseInterface (cmOk);}
- cmCancel:
- {
- CloseInterface (cmCancel);}
- end;
- End; // Window place_num
- Window WnCustomerTran 'Ввод заказчика транспорта' Cyan, Doaccept;
- Show at (,,64,7);
- Screen scParams 'Ввод заказчика транспорта';
- Show At (1,1,63,4);
- Fields
- custName:[40], noprotect;
- custCountry:[40], noprotect;
- custAddress:[40], noprotect;
- <<'Введите информацию о заказчике транспорта'
- Введите информацию о заказчике транспорта
- название .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- страна .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- адрес .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- >>
- end;
- Screen scrButtons
- Show at (1,5,63,6);
- Buttons
- cmOk,,,'Сформировать',,;
- cmCancel,,,'Отмена',,;
- <<
- <. ~С~формировать .> <. ~О~тмена .>
- >>
- end;
- Handleevent
- cmInit :
- {custName:=' ';
- custCountry:=' ';
- custAddress:=' ';}
- cmOK:{CloseInterface (cmOk);}
- cmCancel:
- {CloseInterface (cmCancel);}
- end;
- End; // Window WnCustomerTran
- Window WnPackPyTNVED 'Поддоны по ТН ВЭД' (,,) EscClose;
- Show at (,,55,20);
- Screen scParams 'Поддоны по ТН ВЭД';
- Show At (1,1,54,17);
- Fields
- dPackages_1 ('Облицовка'):[8, '66666666'], NoProtect;
- dPackages_2 ('Облицовка до 90 см2'):[8, '66666666'], NoProtect;
- dPackages_3 ('Ковры мозаичные'):[8, '66666666'], NoProtect;
- dPackages_4 ('Неглазурованная плитка'):[8, '66666666'], NoProtect;
- dPackages_5 ('Глазурованная плитка'):[8, '66666666'], NoProtect;
- dPackages_6 ('Глазуров. плитка до 90 см2'):[8, '66666666'], NoProtect;
- dPackages_7 ('Глазуров. плитка до 62 см2'):[8, '66666666'], NoProtect;
- dPackages_8 ('Клинкер.глаз'):[8, '66666666'], NoProtect;
- dPackages_9 ('Клинкер.неглаз'):[8, '66666666'], NoProtect;
- dPackages_10 ('Санизделия'):[8, '66666666'], NoProtect;
- dPackages_11 ('Сидения'):[8, '66666666'], NoProtect;
- dPackages_12 ('Арматура'):[8, '66666666'], NoProtect;
- dPackages_13 ('Кирпич'):[8, '66666666'], NoProtect;
- dPackages_14 ('Изделия из стекла'):[8, '66666666'], NoProtect;
- dPackages_15 ('Фритта'):[8, '66666666'], NoProtect; //Фритта
- dPackages_16 ('Итого'):[8, '66666666'], NoProtect; //Итого
- <<
- `6907239009 Облицовка` .@@@@@@@@
- `6907239005 Облицовка до 90 см2` .@@@@@@@@
- `6907309001 Ковры мозаичные` .@@@@@@@@
- `6907211000 Неглазурованная плитка` .@@@@@@@@
- `6907219009 Глазурованная плитка` .@@@@@@@@
- `6907219003 Глазуров. плитка до 90 см2` .@@@@@@@@
- `6907219001 Глазуров. плитка до 62 см2` .@@@@@@@@
- `6907229009 Клинкер.глаз` .@@@@@@@@
- `6907221900 Клинкер.неглаз` .@@@@@@@@
- `6910100000 Санизделия` .@@@@@@@@
- `3922200000 Сидения` .@@@@@@@@
- `8481599000 Арматура` .@@@@@@@@
- `6904100000 Кирпич` .@@@@@@@@
- `7016100000 Изделия из стекла` .@@@@@@@@
- `3207408000 Фритта` .@@@@@@@@
- `Итого:` .@@@@@@@@
- >>
- end;
- Screen scrButtons
- Show at (1,18,54,19);
- Buttons
- cmOk,,,'Далее',,;
- <<
- <. ~П~родолжить .>
- >>
- end;
- HandleEvent // handleevent интерфейса
- cmOk:
- {
- VarToArray;
- UpdateTbGrSPInv;
- CloseInterface(cmDefault);
- }
- End;
- End; //Window
- HandleEvent
- cmCheckField:
- { }
- end; //HandleEvent
- /* //окно-рудимент
- Window WnFRPrintInv 'Печать СФ в FastReport' (,,) EscClose;
- Show at (,,64,6);
- Screen scParams 'Печать СФ в FastReport';
- Show At (1,1,63,3);
- Fields
- OptInv ('Счет на оплату/Счет-фактура',,sci13Esc): NoProtect;
- <<
- `Вид документа:`
- (.) Счет на оплату`
- (.) Счет-фактура`
- >>
- end;
- Screen scrButtons
- Show at (1,4,63,5);
- Buttons
- cmOk,,,'Сформировать',,;
- cmCancel,,,'Отмена',,;
- <<
- <. ~С~формировать .> <. ~О~тмена .>
- >>
- end;
- Handleevent // handleevent интерфейса
- cmInit:
- CloseInterface(cmDefault);
- cmDone: //Сохранить DSK
- // FRDestroy(FReport);
- End; //handleevent интерфейса
- End; //Window
- */
- Procedure FillFeeSigners;
- Var
- TablNSel, KodSel, RKod, RKod2, FIO, Posit, NamePerson : String;
- stmt : LongInt;
- {
- iFeeSigners.InitFeeSigners(cgReport_7401);
- if ReportId = Word(0005) Or ReportId = Word(0007) //если форма СФ ENGl, то ссылаемся на подгруппу "подписантов" в группе "Invoce"
- GroupFeeSign := Comp(00010000000005EFh); //группу "подписантов"
- Else if ReportId = Word(0006) then //иначе если форма заявление на получение сертификата, то ссылаемся на подгруппу "подписантов" в группе "Заявление на сертификат"
- GroupFeeSign := Comp(000100000000063Ah); //группу "подписантов"
- Else if ReportId = Word(0003) Or ReportId = Word(0004) then
- GroupFeeSign := Comp(0001000000000358h);
- else
- GroupFeeSign := Comp(0001000000000353h);
- if (iFeeSigners.FindFeeSignersByNRec(GroupFeeSign))//группа подписантов по умолчанию для формы 13_0003
- {
- i:= 1;
- If (iFeeSigners.GetSignerFirst)
- {
- Do
- {
- TablNSel := iFeeSigners.GetSignerTabN;
- stmt := sqlAllocStmt;
- sqlBindCol(stmt, 1, KodSel);
- sqlBindParam( stmt, 1, TablNSel);
- sqlExecStmt(stmt, 'select top 1 F_NALICHIE(?) from KLVAL');
- while sqlFetch(stmt) = tsOk do
- RKod:=String(KodSel);
- sqlFreeStmt(stmt);
- If ( RKod = '1' Or RKod = '2' )
- {
- If Message('Сотрудник '+iFeeSigners.GetSignerFIO(7)+' '+If(RKod = '1','находится в отпуске','отсутствует на рабочем месте')+ ' хотите выбрать другого подписанта?',YesNo)=cmNo
- {
- arSign_Name[i] := iFeeSigners.GetSignerFIO(7);
- If ( Pos(Locase(iFeeSigners.GetSignerInfo(3)),LoCase(arSign_Name[i])) <= 0 )
- {
- if ReportId <> Word(0005) Or ReportId <> Word(0007)
- {
- arSign_Posit[i] := iFeeSigners.GetSignerInfo(3);
- }
- //28-06-2018 подписанты для английской формы
- if ReportId = Word(0005) Or ReportId = Word(0007)
- {
- arSign_Posit[i] := iFeeSigners.GetSignerPosition(2); //из вкладки "Должности(варианты написания)" - родительный падеж
- }
- }
- }
- Else
- {
- Do
- {
- If RunInterface('PersonFiop',TabNum, NamePerson, ccPerson) = cmCancel
- {
- arSign_Name[i] := iFeeSigners.GetSignerFIO(7);
- If ( Pos(Locase(iFeeSigners.GetSignerInfo(3)),LoCase(arSign_Name[i])) <= 0 )
- {
- if ReportId <> Word(0005) Or ReportId <> Word(0007)
- {
- arSign_Posit[i] := iFeeSigners.GetSignerInfo(3);
- }
- //28-06-2018 подписанты для английской формы
- if ReportId = Word(0005) Or ReportId = Word(0007)
- {
- arSign_Posit[i] := iFeeSigners.GetSignerPosition(2); //из вкладки "Должности(варианты написания)" - родительный падеж
- }
- }
- Continue;
- }
- TablNSel := TabNum;
- stmt := sqlAllocStmt;
- sqlBindCol(stmt, 1, KodSel);
- sqlBindParam( stmt, 1, TablNSel);
- sqlExecStmt(stmt, 'select top 1 F_NALICHIE(?) from KLVAL');
- While sqlFetch(stmt) = tsOk Do
- RKod2 := string(KodSel);
- sqlFreeStmt(stmt);
- If ( RKod2 = '1' Or RKod2 = '2' )
- Message('Сотрудник '+NamePerson+' отсутствует на рабочем месте');
- Else
- {
- If ( ccPerson <> Comp(0) )
- {
- If GetFirst Persons = tsOk
- If GetLast Appointments = tsOk
- If Getlast Catalogs = tsOk
- Posit := SubStr(Catalogs.Name,1,1)+ locase(SubStr(catalogs.name,2,length(catalogs.name)));
- //выделение инициалов из ФИО
- FIO := '';
- If ( Pos(' ',NamePerson) > 0 )
- FIO := substr(NamePerson,1,Pos(' ',NamePerson)-1) +' '+substr(NamePerson,Pos(' ',NamePerson)+1,1)+'.';
- If (Pos(' ',substr(NamePerson,Pos(' ',NamePerson)+1,length(NamePerson) - Pos(' ',NamePerson))) > 0 and Trim(FIO) <> '' )
- {
- FIO := FIO + substr(NamePerson,(Pos(' ',substr(NamePerson,Pos(' ',NamePerson)+1,length(NamePerson) - Pos(' ',NamePerson)))+1+Pos(' ',NamePerson)),1)+'.';
- NamePerson := FIO;
- }
- }//If ( KodPers <> Comp(0) )
- arSign_Name[i] := NamePerson;
- arSign_Posit[i]:= Posit;
- }
- }
- While (RKod2 = '1' Or RKod2 = '2')
- }//Else
- }//If ( RKod = '1' Or RKod = '2' )
- Else if ( RKod <> '1' And RKod <> '2' )
- {
- arSign_Name[i] := iFeeSigners.GetSignerFIO(7);
- // arSign_Posit[i] := iFeeSigners.GetSignerInfo(3);
- if ReportId <> Word(0005) Or ReportId <> Word(0007)
- {
- arSign_Posit[i] := iFeeSigners.GetSignerInfo(3);
- }
- //28-06-2018 подписанты для английской формы
- if ReportId = Word(0005) Or ReportId = Word(0007)
- {
- arSign_Posit[i] := iFeeSigners.GetSignerPosition(2); //из вкладки "Должности(варианты написания)" - родительный падеж
- }
- }
- i += 1;
- }
- While ( (iFeeSigners.GetSignerNext) And i <= 3 )
- }
- }
- }//Procedure FillFeeSigners;
- Procedure FillHeader;
- {
- If GetFirst BaseDoc = tsOk
- {
- Case OptInv of
- Word(0): NameDocSF := 'СЧЕТ НА ОПЛАТУ';
- Word(1): NameDocSF := 'СЧЕТ-ФАКТУРА';
- Word(2): NameDocSF := 'CMR-накладная';
- End;
- If (ReportID = Word(4)) // счет на оплату мкз
- {
- If Message('С залоговой стоимостью ?',YesNo)=cmYes
- PrZalog := True;
- Else
- PrZalog := False;
- }
- If GetFirst MyOrg = tsOk
- {
- MyOrg := Trim(MyOrg.Name);
- IndexMyOrg := MyOrg.Indexk;
- UNNMyOrg := MyOrg.UNN;
- AddrMyOrg := MyOrg.ADDR;
- AddrMyOrgTotal := IndexMyOrg + ' ' + AddrMyOrg;
- }
- If GetFirst KatOrgBuy = tsOk
- {
- BuyOrg := KatOrgBuy.Name;
- IndexBuyOrg := KatOrgBuy.Indexk;
- UNNBuyOrg := KatOrgBuy.UNN;
- AddrBuyOrg := KatOrgBuy.ADDR;
- AddrBuyOrgTotal := IndexBuyOrg + ' ' + AddrBuyOrg;
- AddrBuyOrgTotalEngl := AValKatOrgAddrEngl.VSTRING;
- }
- If GetFirst KatOrgOtpr = tsOk
- {
- OrgGruzOtpr := KatOrgOtpr.Name;
- IndexGruzOtpr := KatOrgOtpr.Indexk;
- AddrGruzOtpr := KatOrgOtpr.ADDR;
- AddrGruzOtprTotal := IndexGruzOtpr + ' ' + AddrGruzOtpr;
- cityFrom := KatCityPol.Name
- }
- If GetFirst KatOrgPol = tsOk
- {
- OrgGruzPol := KatOrgPol.Name;
- IndexGruzPol := KatOrgPol.Indexk;
- AddrGruzPol := KatOrgPol.ADDR;
- AddrGruzPolTotal := IndexGruzPol + ' ' + AddrGruzPol;
- cityTo := KatCityPol.Name;
- OrgGruzPolEngl := AValKatOrgName.VSTRING;
- AddrGruzPolTotalEngl := AValKatOrgAddr.VSTRING;
- If GetFirst KatStatePol = tsOk
- {
- If ( Trim(KatStatePol.Kod) = '860' And Pos('УЗБЕКИСТАН',UpCase(KatStatePol.Name)) > 0 )
- PrUzbek := True;
- If ( Trim(KatOrgPol.Name) = 'ООО "Грань Керамика"' )
- {
- AddrGruzPolTotal := IndexGruzPol +', '+ KatStatePol.Name;
- If GetFirst KatCityPol = tsOk
- AddrGruzPolTotal := AddrGruzPolTotal +', '+ KatCityPol.Name;
- }
- }//If GetFirst KatStatePol
- If GetFirst TTNDOC = tsOk
- {
- If ( Trim(KatOrgPol.Name) = 'ООО "Грань Керамика"' )
- If GetFirst Marpunkt = tsOk
- AddrGruzPolTotal := AddrGruzPolTotal +', '+ Marpunkt.Name;
- }//If GetFirst TTNDOC
- }//If GetFirst KatOrgPol
- //*********************************************************************************************************
- If GetFirst KlVal = tsOk
- { If((KlVal.NREC = 4) and //RUB
- optInv = Word(2)) //CMR
- {
- vSimvolV := 'рос.рублей' //просьба Ломако
- } else
- {vSimvolV := KlVal.Simvolv;}
- }
- If ( KatOrgBuy.NRec = Comp(0001000000010501h)) //ООО "Эпицентр К"
- {
- PrUkraine := True;
- MyOrg := 'Открытое акционерное общество "Керамин"';
- OrgGruzOtpr := 'Открытое акционерное общество "Керамин"';
- If GetFirst KlVal = tsOk //для печати в шапке валюты по ООО "Эпицентр К"
- vCurrency := If(BaseDoc.cVal = Comp(0000000000000002h),'доллар США',KlVal.Simvolv) ;
- }
- //*********************************************************************************************************
- //Реквизиты Банка
- If GetFirst KatBankMy = tsOk
- {
- If GetFirst KatBMy = tsOk
- {
- sANamBankMy := 'Наименование (лат.)';
- If GetFirst ANamKatBMy = tsOk
- If GetFirst AValKatBMy = tsOk
- MyBankName := AValKatBMy.VSTRING;
- sANamBankMy := 'Адрес (лат.)';
- If GetFirst ANamKatBMy = tsOk
- If GetFirst AValKatBMy = tsOk
- MyBankAddr := AValKatBMy.VSTRING;
- sANamBankMy := 'SWIFT';
- If GetFirst ANamKatBMy = tsOk
- If GetFirst AValKatBMy = tsOk
- { MyBankSwift := AValKatBMy.VSTRING; PrMyBankSwift := True; }
- }
- If ( Trim(MyBankName) = '' ) MyBankName := KatBankMy.Name;
- If ( Trim(MyBankAddr) = '' ) MyBankAddr := KatBankMy.ADDR;
- If ( Trim(MyBankSwift) = '' ) MyBankSwift := KatBankMy.MFO1;
- MyBankAcc := KatBankMy.SCHET1;
- }//If GetFirst KatBankMy
- If GetFirst ANamCorr = tsOk
- If GetFirst AValCorr = tsOk
- If GetFirst KatBankCorr = tsOk
- {
- PrBankCorr := True;
- CorrBankAcc := KatBankCorr.SCHET1;
- CorrBankName := KatBankCorr.Name;
- CorrBankSwift := KatBankCorr.MFO1;
- }
- If GetFirst ANamCont = tsOK
- If GetFirst AValCont = tsOK
- Container := 'контейнер ' + AValCont.vString;
- NumVagon := If(BASEDOC.NVAGON = '','','для ж.д. вагон № '+SubStr(BASEDOC.NVAGON,1,8)+' '+ Container);
- If ( BaseDoc.TypeDoc = Word(1) )
- NumSoprRailway := If(BASEDOC.NVAGON='','',If(Length(BASEDOC.NVAGON)<9,'',SubStr(BASEDOC.NVAGON,10,Length(BASEDOC.NVAGON))));
- If ( BaseDoc.TypeDoc = Word(0) )
- StationOtpr := '220024, г.Минск, ул. Серова, 22, Республика Беларусь'
- Else
- StationOtpr := If(NumVagon = '','','МИНСК - ЮЖНЫЙ БЕЛОРУССКОЙ ЖЕЛЕЗНОЙ ДОРОГИ');
- If ( BaseDoc.TypeDoc = Word(0) )
- StationOtprEngl := '220024 Belarus, Minsk, Serova str.,22'
- Else
- StationOtprEngl := If(NumVagon = '','','MINSK - SOUTH BELARUS RAILROAD');
- If ( OptInv = Word(1) )
- DateDoc := DateToStr(Cur_Date(),'DD/MM/YYYY');
- Else
- DateDoc := DateToStr(BASEDOC.DDOC,'DD/MM/YYYY');
- If GetFirst StepDoc = tsOk
- {
- _Loop StepDoc
- {
- _Loop KatSopr
- {
- PrSopr := True;
- If ( Pos(KatSopr.NSopr,NumSopr) = 0 )
- NumSopr += (KatSopr.NSopr + ', ');
- If ( OptInv = Word(1) ) //0 - СЧЕТ НА ОПЛАТУ 1 - СЧЕТ-ФАКТУРА
- DateDoc := DateToStr(KatSopr.DSopr,'DD/MM/YYYY');
- If GetFirst ANamSreds = tsOK
- If GetFirst AValSreds = tsOK
- {
- If ( KatSopr.cPodrFrom = Comp(4000A36470B40052h) Or //Склад №7 - санитарно-керамических изделий
- (KatSopr.cMolFrom = Comp(4001EDED6B37EC4Dh) //KatSopr.cPodrFrom = Comp(4612229097365957709)
- /*and (Substr(KatMCPack.kgroupmc,1,4) = '4020'
- or Substr(KatMCPack.kgroupmc,1,4) = '7020'
- or Substr(KatMCPack.kgroupmc,1,4) = '4070')*/ )
- ) //Склад комплектующих з-д Стройфарфор
- PalletSan := AValSreds.vDouble; //поддоны покупателя для сантехн
- Else
- PalletPlit := AValSreds.vDouble; //поддоны покупателя для плитки
- }
- If GetFirst SpSopr = tsOk
- {
- _Loop SpSopr
- {
- //вопрос остается открытым - вес рассчитывается с тарой или без?
- If (KatMCPack.kgroupmc<>'41') Continue;
- //If ((KatSopr.cPodrFrom = Comp(4000A36470B40052h)) Or (KatSopr.cMolFrom = Comp(281474976710891) And PrSanIzd))
- If ((KatSopr.cPodrFrom = Comp(4000A36470B40052h))
- Or (KatSopr.cMolFrom = Comp(281474976710891) /*and pr_sanizd = 1*/
- /*and (Substr(KatMCPack.kgroupmc,1,4) = '4020'
- or Substr(KatMCPack.kgroupmc,1,4) = '7020'
- or Substr(KatMCPack.kgroupmc,1,4) = '4070') */
- ))
- { //считаем вес поддонов
- KolPackSI := KolPackSI+ SpSopr.KolFact;
- GrossWPackSI := GrossWPackSI + Round((KatMCPack.Massa + KatMCPack.MTara)*SpSopr.KolFact,2);
- WPackSI := KatMCPack.MASSA + KatMCPack.MTARA;
- }
- Else
- {
- KolPackPL += SpSopr.KolFact;
- GrossWPackPL += Round((KatMCPack.massa + KatMCPack.mtara)*spsopr.kolfact,2);
- // message ('GrossWPackPL - '+GrossWPackPL);
- }
- //pPallet:=GrossWPackSI ; // вес всех поддонов сантехники (не пересчитываем по накладной. не ясно зачем это вообще сделали)
- GrossWPallet:=GrossWPackPL ; // вес всех поддонов плитки
- //message (pPallet);
- }
- }//If GetFirst SpSopr
- }//_Loop KatSopr
- If GetFirst SpStep = tsOk
- If GetFirst KlPrice = tsOk
- ZagPrice := KlPrice.Zag;
- ZagPriceEN := replace (replace (replace (replace (KlPrice.Zag, 'спецификация','Specification'),'№','No'), ' от ', ' dated '),'г.','');
- }//_Loop StepDoc
- }//If GetFirst StepDoc
- If (NumSopr<>'') NumSopr := SubStr(NumSopr,0,Length(NumSopr)-2);
- If (ZagPrice<>'') ZagPrice := Trim(SubStr(ZagPrice,0,Pos('(',ZagPrice)-1))+SubStr(ZagPrice,Pos(')',ZagPrice)+1,Length(ZagPrice));
- If (ZagPriceEN<>'') ZagPriceEN := Trim(SubStr(ZagPriceEN,0,Pos('(',ZagPriceEN)-1))+SubStr(ZagPriceEN,Pos(')',ZagPriceEN)+1,Length(ZagPriceEN));
- If GetFirst BaseFin = tsOk
- {
- _Loop BaseFin
- {
- If GetFirst PlPor = tsOk
- _Loop PlPor
- If ( Pos((PlPor.NoDok +' от '+DateToStr(PlPor.DatOb,'DD/MM/YY')),NumDatePlat) = 0 )
- NumDatePlat += (PlPor.NoDok +' от '+DateToStr(PlPor.DatOb,'DD/MM/YY') + ', ');
- }
- }//If GetFirst BaseFin
- NumDatePlat := SubStr(NumDatePlat,0,Length(NumDatePlat)-2);
- //способ доставки для отчета "Заявление на получение сертификата происхождения"
- If GetFirst ANamTransp = tsOk
- If GetFirst AValTransp = tsOk
- Case AValTransp.VSTRING of
- 'ж.д.': { Transport := 'железнодорожный'; }
- 'АВТОТРАНСПОРТ ПОКУПАТЕЛЯ': { Transport := 'автотранспорт' }
- 'АВТОТРАНСПОРТ ПОСТАВЩИКА': { Transport := 'автотранспорт' }
- Else
- Transport := AValTransp.VSTRING;
- End;
- sExClNam := 'Условия поставки';
- If GetFirst ExClNamBD = tsOk
- If GetFirst ExClValBD = tsOk
- If GetFirst ExClSegBD = tsOk
- DelConditions := ExClSegBD.Name;
- sExClNamEngl := 'Условия поставки English';
- If GetFirst ExClNamBDEngl = tsOk
- If GetFirst ExClValBDEngl = tsOk
- If GetFirst ExClSegBDEngl = tsOk
- DelConditionsEngl := ExClSegBDEngl.Name;
- //для CMR подписанты не заполняются
- if (ReportID <> Word(0010) and //CMR-накладная. Венесуэла, Ливия 24_0005
- ReportID <> Word(0011) and //CMR-накладная. Печать бланка 24_0005
- ReportID <> Word(0012) and //CMR-накладная 24_0005'
- ReportID <> Word(0013) //CMR-накладная. Кирпич принтер OKI 3310 24_0005
- ) {FillFeeSigners;}
- }//If GetFirst BaseDoc
- }//Procedure FillHeader;
- Procedure ReplaceSPName;
- Var
- KolPosPlitka : Integer;
- arPos : Array [1..2] of Integer;
- NamePos : String;
- PrNewStr : Boolean;
- {
- SpMCName := KatMC.Name;
- PrNewStr := False;
- If (Instr('плитка',SpMCName)>0)
- {
- If (Instr('(',SpMCName)>0)
- KolPosPlitka:=Instr('(',SpMCName)-Instr('плитка',SpMCName)-1;
- Else
- KolPosPlitka:=Length(SpMCName); }
- If ( Pos('плитка',SpMCName) > 0 )
- SpMCName := If(Instr('плитка',SpMCName)>0,'П'+substr(SpMCName,InStr('плитка',SpMCName)+1,KolPosPlitka)+' '+substr(SpMCName,1,Instr('плитка',SpMCName)-1),SpMCName);
- Else
- {
- //для новых названий
- If ( (Pos('плитки',LoCase(SpMCName)) > 1 Or
- Pos('керамогранит',LoCase(SpMCName)) > 1 Or
- Pos('ковры',LoCase(SpMCName)) > 1 Or
- Pos('изделия',LoCase(SpMCName)) > 1)
- and substr(KATMC.KGROUPMC, 1, 4) <> '0602' ) //исключаем ящики
- {
- arPos[1] := Pos('\', LoCase(SpMCName));
- NamePos := Trim(Substr(SpMCName,1,arPos[1]-1));
- arPos[1] := Pos('плитки',locase(KatMC.Name));
- If ( arPos[1] > 1 )
- SpMCName := 'Плитки керам.'+Substr(NamePos,arPos[1]+6,length(NamePos))+' '+ Substr(NamePos,1,arPos[1]-1);
- Else
- {
- If ( Pos('ковры',LoCase(SpMCName)) > 1 )
- arPos[1] := Pos('ковры',LoCase(SpMCName));
- Else
- {
- If ( Pos('изделия',LoCase(SpMCName)) > 1 )
- arPos[1] := Pos('изделия',LoCase(SpMCName));
- Else
- {
- If ( Pos('керамогранит',LoCase(SpMCName)) > 1 And Pos('\',LoCase(SpMCName)) > 0)
- arPos[1] := Pos('керамогранит',LoCase(SpMCName));
- }
- }
- SpMCName := Upcase(Substr(NamePos,arPos[1],1))+Substr(NamePos,arPos[1]+1,length(NamePos))+' ' + Substr(NamePos,1,arPos[1]-1);
- }
- }
- }//Else If Pos('плитка',SpMCName)
- If ( ((Pos('унитаз',LoCase(SpMCName)) > 1 Or Pos('умывальник',LoCase(SpMCName)) > 1 Or Pos('писсуар',LoCase(SpMCName)) > 1
- Or Pos('бачок',LoCase(SpMCName)) > 1 Or Pos('биде',LoCase(SpMCName)) > 1 Or Pos('пьедестал',LoCase(SpMCName)) > 1)
- And Pos('керам',LoCase(SpMCName)) > 0 ) Or Pos('унитаз-компакт',LoCase(SpMCName)) > 1 )
- {
- PrNewStr := True;
- If Pos('унитаз',LoCase(SpMCName)) > 1 And Pos('биде',LoCase(SpMCName)) = 0
- { arPos[1] := Pos('унитаз',LoCase(SpMCName));
- SpMCName := Upcase(Substr(SpMCName,arPos[1],1))+Substr(SpMCName,arPos[1]+1,length(SpMCName))+' '+Substr(SpMCName,1,arPos[1]-1)
- }
- If Pos('умывальник',LoCase(SpMCName)) > 1 And Pos('с креплением',LoCase(SpMCName)) > 1
- { arPos[1] := Pos('умывальник',LoCase(SpMCName));
- arPos[2] := Pos('с креплением',LoCase(SpMCName));
- SpMCName := Upcase(Substr(SpMCName,arPos[1],1))+Substr(SpMCName,arPos[1]+1,arPos[2]-arPos[1]-2)+' '+Substr(SpMCName,1,arPos[1]-1)+Substr(SpMCName,arPos[2],length(SpMCName))
- }
- If Pos('биде',LoCase(SpMCName)) > 1 And Pos('с креплением',LoCase(SpMCName)) > 1
- { arPos[1] := Pos('биде',LoCase(SpMCName));
- arPos[2] := Pos('с креплением',LoCase(SpMCName));
- SpMCName := Upcase(Substr(SpMCName,arPos[1],1)) + Substr(SpMCName,arPos[1]+1,arPos[2]-arPos[1]-2)+' '+ Substr(SpMCName,1,arPos[1]-1) + Substr(SpMCName,arPos[2],length(SpMCName))
- }
- If Pos('умывальник',LoCase(SpMCName)) > 1 and Pos('с креплением',LoCase(SpMCName)) = 0 and Pos('пьедестал',LoCase(SpMCName)) = 0 and Pos('биде',LoCase(SpMCName)) = 0
- { arPos[1] := Pos('умывальник',LoCase(SpMCName));
- SpMCName := Upcase(Substr(SpMCName,arPos[1],1)) + Substr(SpMCName,arPos[1]+1,length(SpMCName))+' '+ Substr(SpMCName,1,arPos[1]-1)
- }
- If Pos('бачок',LoCase(SpMCName)) > 1
- { arPos[1] := Pos('бачок',LoCase(SpMCName));
- SpMCName := Upcase(Substr(SpMCName,arPos[1],1)) + Substr(SpMCName,arPos[1]+1,length(SpMCName))+' '+ Substr(SpMCName,1,arPos[1]-1);
- }
- If Pos('писсуар',LoCase(SpMCName)) > 1
- { arPos[1] := Pos('писсуар',LoCase(SpMCName));
- SpMCName := Upcase(Substr(SpMCName,arPos[1],1)) + Substr(SpMCName,arPos[1]+1,length(SpMCName))+' '+ Substr(SpMCName,1,arPos[1]-1);
- }
- If Pos('биде',LoCase(SpMCName)) > 1 And Pos('с креплением',LoCase(SpMCName)) = 0
- { arPos[1] := Pos('биде',LoCase(SpMCName))
- SpMCName := Upcase(Substr(SpMCName,arPos[1],1)) + Substr(SpMCName,arPos[1]+1,length(SpMCName))+' '+ Substr(SpMCName,1,arPos[1]-1);
- }
- If Pos('пьедестал',LoCase(SpMCName)) > 1 And Pos('с крепл',LoCase(SpMCName)) = 0
- { arPos[1] := Pos('пьедестал',LoCase(SpMCName))
- SpMCName := Upcase(Substr(SpMCName,arPos[1],1)) + Substr(SpMCName,arPos[1]+1,length(SpMCName))+' '+ Substr(SpMCName,1,arPos[1]-1);
- }
- }
- If Pos('сиденье',LoCase(SpMCName)) > 1 And (Not PrNewStr) And Pos('сиденьем',LoCase(SpMCName)) = 0
- {
- If Pos('сиденье',LoCase(SpMCName)) > 1
- { arPos[1] := Pos('сиденье',LoCase(SpMCName));
- SpMCName := Upcase(Substr(SpMCName,arPos[1],1)) + Substr(SpMCName,arPos[1]+1,length(SpMCName))+' '+ Substr(SpMCName,1,arPos[1]-1);
- }
- }
- }//Procedure SPName
- Function EdEngl(nameEd : String) : String;
- {
- Var nameEdEn : String;
- Case nameEd of
- 'м2' : { nameEdEn := 'Sq.m'; }
- 'шт' : { nameEdEn := 'pc'; }
- 'штук' : { nameEdEn := 'pc'; }
- else nameEdEn := 'англ. наименование отсутствует';
- End;
- Result := nameEdEn;
- };
- Procedure FillSpecification;
- Var
- NumGrMC : Word;
- arGrMC : Array [1..3] of String;
- PrPackMC : Boolean;
- NAME_EN, EdGR : String;
- {
- If GetFirst BaseDoc = tsOk
- {
- If GetFirst StepDoc = tsOk
- {
- _Loop StepDoc
- {
- If GetFirst SpStep = tsOk
- {
- _Loop SpStep
- {
- If GetFirst KatMC <> tsOk Continue;
- If ( Trim(KATMC.BARKOD)='Т000001' Or
- Trim(KATMC.BARKOD)='Т000002' Or
- Trim(KATMC.BARKOD)='Т000003' Or
- Trim(KATMC.BARKOD)='99010086-9' )
- PrPackMC := True;
- Else PrPackMC := False;
- ClearBuffer(#tbSPInv);
- //07-06-2018
- //проверка на наличие название МЦ на англ. языке
- If GetFirst ENGL = tsOk {
- NAME_EN := ENGL.PRIM;
- } ELSE {
- NAME_EN := 'английское название отсутствует в каталоге МЦ'
- }
- tbSPInv.TNVED := KatMC.TNVED;
- tbSPInv.cGroupMC := KatMC.cGroupMC;
- RePlaceSPName;
- tbSPInv.Name := Trim(SpMCName);
- tbSPInv.OBOZN := KatMC.OBOZN;
- tbSPInv.NameEN := Trim(NAME_EN);//07-06-2018
- If GetFirst KatOtpEd = tsOk
- {
- tbSPInv.EdOtp := KatOtpEd.Name;
- tbSPInv.KoefOtp := KatOtpEd.Koef;
- }
- If GetFirst KatED = tsOk
- tbSPInv.EdUch := KatED.Name; //м2
- If ( KatOtpEd.Koef <> 1 )
- {
- tbSPInv.Kolvo := DoubleToStr(Round(SpStep.KolSkl*KatOtpEd.Koef,3),FormatKol)+'/'+DoubleToStr(SpStep.KolSkl,'666666666');
- tbSPInv.EDIzm := LoCase(SubStr(tbSPInv.EdUch,1,2)+'/'+SubStr(tbSPInv.EdOtp,1,2));
- tbSPInv.EDIzmEN := EdEngl(LoCase(SubStr(tbSPInv.EdUch,1,2))) + ' / ' + EdEngl (LoCase(SubStr(tbSPInv.EdOtp,1,2)));
- EdGR := tbSPInv.EDIzm;
- }
- Else
- {
- tbSPInv.Kolvo := DoubleToStr(Round(SpStep.KolSkl,3),FormatKol);
- tbSPInv.EDIzm := LoCase(tbSPInv.EdOtp);
- tbSPInv.EDIzmEN := EdEngl(LoCase(tbSPInv.EdOtp));
- EdGR:=tbSPInv.EDIzm;
- }
- //объем м3 = объем всех ящиков
- if (KatOtpEdAkt.KOEF = 1) {
- tbSPInv.ob_p := (SpStep.KolSkl / KatOtpEdBox.KOEF) * KatMC.volume; //объем всех ящиков для отп.ед. м2
- } else {
- tbSPInv.ob_p := (SpStep.KolSkl/(KatOtpEdBox.KOEF/KatOtpEdAkt.KOEF)) * KatMC.volume; //объем всех ящиков для отп.ед. шт
- }
- //определяем вид продукции для распределения поддонов
- If katmc.kgroupmc <> '401010' and substr(katmc.kgroupmc,1,6) = '401010'
- {
- pr_obl := 1
- }
- If katmc.kgroupmc = '40102021' or katmc.kgroupmc = '4010502' or katmc.kgroupmc = '40102011'
- {
- If katmc.TNVED = '6907211000' {
- pr_ng := 1
- } else {
- pr_gl := 1
- }
- }
- If (Not PrPackMC)
- {
- If (SpStep.Price<>0)
- tbSPInv.PriceNoNDS := DoubleToStr(Round(SpStep.Price,2),FormatSum);
- Else
- Message('Ошибка! Нулевая цена по: ' + KatMC.Name);
- }
- tbSPInv.SumNoNDS := DoubleToStr(Round(SpStep.Summa,2),FormatSum);
- tbSPInv.SumNDS := DoubleToStr(Round(SpStep.NDS,2), FormatSum);
- If ( SpStep.NDS <> 0 ) {
- tbSPInv.NDS := DoubleToStr((doGetTune('NALOG.STAV1')),'66')+'%';
- }else{
- tbSPInv.NDS := '0%'; //07-06-2018
- }
- If (BaseDoc.Vhodnal = Word(1)) //Налоги включены в цену
- tbSPInv.SumWithNDS := DoubleToStr(Round(SpStep.Price * SpStep.KolSkl,2),FormatSum);
- If (BaseDoc.Vhodnal = Word(2)) //Налоги не включены
- tbSPInv.SumWithNDS := DoubleToStr(Round(SpStep.Price * SpStep.KolSkl + SpStep.NDS,2),FormatSum);
- TotalSumNoNDS += SpStep.Summa; //всего к оплате
- TotalSumNDS += SpStep.NDS; //всего к оплате
- If (BaseDoc.Vhodnal = Word(1)) {
- TotalSumWithNDS += Round(SpStep.Price * SpStep.KolSkl,2);} //06-08-2018 Добавлено округление неправильно считалась общая сумма
- If (BaseDoc.Vhodnal = Word(2)){
- TotalSumWithNDS += Round(SpStep.Price * SpStep.KolSkl + SpStep.NDS,2); } //06-08-2018 Добавлено округление неправильно считалась общая сумма
- CVAL := KlVal.nrec;
- If (PrZalog)
- {
- If (BaseDoc.Vhodnal = Word(1))
- SumZalog += (SpStep.Price * SpStep.KolSkl)*24/100;
- If (BaseDoc.Vhodnal = Word(2))
- SumZalog += (SpStep.Price * SpStep.KolSkl+SpStep.NDS)*24/100;
- }
- If ( SubStr(KatMC.KGroupMC,1,2) = '40' Or SubStr(KatMC.KGroupMC,1,2) = '70' )
- if (ReportID = Word(0005) and OptInv = Word(1)) OR
- (ReportID = Word(0007) and OptInv = Word(0)) {
- tbSPInv.COrigin := 'Belarus / РБ';
- } else {
- tbSPInv.COrigin := 'РБ';
- }
- Else
- {
- If GetFirst ANamCO = tsOk
- If GetFirst AValCO = tsOk
- tbSPInv.COrigin := AValCO.VSTRING;
- }
- arGrMC[1] := ( SubStr(KatMC.TNVED,1,4)+' '+SubStr(KatMC.TNVED,5,2)+' '+
- SubStr(KatMC.TNVED,7,3)+' '+SubStr(KatMC.TNVED,10,1)+If(PrUkraine,' / HS '+SubStr(KatMC.Gost,1,4),'') ) ;
- If GetFirst KatOtpEdPack = tsOk
- vPackages := Round(If(KatOtpEd.Koef<>1,SpStep.KolSkl*KatOtpEd.Koef,SpStep.KolSkl)/
- If(KatOtpEdPack.Koef<>0,KatOtpEdPack.Koef,1),0);
- If (SubStr(KatMC.TNVED,1,4) = '6907' Or KatMC.TNVED = '7016100000' or
- KatMC.TNVED = '6910100000' Or KatMC.TNVED = '3922200000'
- Or KatMC.TNVED = '7324900000' Or KatMC.TNVED = '7318190009' Or KatMC.TNVED = '3926909709')
- {
- Case KatMC.TNVED of
- '6907211000': { NumGrMC := Word(1);
- arGrMC[2] := 'Плитки керамические неглазурованные с коэффициентом поглощения воды не более 0,5 мас.%'
- arGrMC[3] := 'Unglazed ceramic with a water absorption coefficient of not more than 0,5%'
- TNVEDShort := SubStr(KatMC.TNVED,1,6);
- }
- '6907219001': { NumGrMC := Word(2);
- arGrMC[2] := 'Плитки керамические глазурованные с коэффициентом поглощения воды не более 0,5 мас.%, с наибольшей стороной менее 7 см';
- arGrMC[3] := 'Glazed ceramic with a water absorption coefficient of not more than 0,5%, by weight with the largest side less than 7 cm';
- TNVEDShort := SubStr(KatMC.TNVED,1,6);
- }
- '6907219003': { NumGrMC := Word(3);
- arGrMC[2] := 'Плитки керамические глазурованные с коэффициентом поглощения воды не более 0,5 мас.%, с лицевой стороной не более 90 см2';
- arGrMC[3] := 'Glazed ceramic with a water absorption coefficient of not more than 0,5%, with a face not exceeding 90 cm2';
- TNVEDShort := SubStr(KatMC.TNVED,1,6);
- }
- '6907219009': { NumGrMC := Word(4);
- arGrMC[2] := 'Плитки керамические глазурованные с коэффициентом поглощения воды не более 0,5 мас.%, с лицевой стороной более 90 см2';
- arGrMC[3] := 'Ceramic glazed tiles with a coefficient of water absorption not more than 0,5wt.%, with frontage of over 90 sq.cm';
- TNVEDShort := SubStr(KatMC.TNVED,1,6);
- }
- '6907221000': { NumGrMC := Word(5);
- arGrMC[2] := 'Плитки керамические неглазурованные с коэффициентом поглощения воды более 0,5 мас.% но не более 10 мас.%';
- arGrMC[3] := 'Unglazed ceramic with a water absorption coefficient of more than 0,5%, but not more than 10%';
- TNVEDShort := SubStr(KatMC.TNVED,1,6);
- }
- '6907229009': { NumGrMC := Word(6);
- arGrMC[2] := 'Плитки керамические глазурованные с коэффициентом поглощения воды более 0,5 мас.% но не более 10 мас.%, с лицевой стороной более 90см2';
- arGrMC[3] := 'Glazed ceramic with a water absorption coefficient of more than 0,5%, , but not more than 10%, with a face greater than 90cm2';
- TNVEDShort := SubStr(KatMC.TNVED,1,6);
- }
- '6907239005': { NumGrMC := Word(7);
- arGrMC[2] := 'Плитки керамические глазурованные с коэффициентом поглощения воды более 10 мас.% , с лицевой стороной не более 90см2';
- arGrMC[3] := 'Glazed ceramic with a water absorption coefficient of more than 10%, with a face not exceeding 90cm2';
- TNVEDShort := SubStr(KatMC.TNVED,1,6);
- }
- '6907239009': { NumGrMC := Word(8);
- arGrMC[2] := 'Плитки керамические глазурованные с коэффициентом поглощения воды более 10 мас.% , с лицевой стороной более 90см2';
- arGrMC[3] := 'Ceramic glazed tiles with a coefficient of water absorption more than 10wt.%, with frontage of over 90 sq.cm ';
- TNVEDShort := SubStr(KatMC.TNVED,1,6);
- }
- '6907309001': { NumGrMC := Word(9);
- arGrMC[2] := 'Ковры мозаичные из плиток керамических глазурованные,на основе,из элементов с наибольшей стороной менее 7 см';
- arGrMC[3] := 'Ковры мозаичные из плиток керамических глазурованные,на основе,из элементов с наибольшей стороной менее 7 см';
- TNVEDShort := SubStr(KatMC.TNVED,1,6);
- }
- '7016100000': { NumGrMC := Word(10);
- arGrMC[2] := 'Изделия декоративные из стекла: фризы';
- arGrMC[3] := 'Decorative articles made of glass: friezes';
- TNVEDShort := SubStr(KatMC.TNVED,1,6);
- }
- '6910100000': { NumGrMC := Word(13);
- arGrMC[2] := '';
- arGrMC[3] := '';
- TNVEDShort := SubStr(KatMC.TNVED,1,6) ;
- }
- '3922200000': { NumGrMC := Word(12);
- arGrMC[2] := ''
- arGrMC[3] := ''
- TNVEDShort := SubStr(KatMC.TNVED,1,6);
- }
- '7324900000','7318190009','3926909709':
- { NumGrMC := Word(14);
- arGrMC[2] := 'Крепление';
- arGrMC[3] := 'Binding';
- TNVEDShort := SubStr(KatMC.TNVED,1,6);}
- Else
- NumGrMC := Word(99);
- End;
- } Else NumGrMC := Word(98);
- //07-06-2018 добавлено условие для поддонов
- //т.к. если шла плитка потом поддон, то переменная NumGrMC не обновлялась и результат суммировался к плитке
- if (KatMC.TNVED = '4415202000'){
- Case KatMC.TNVED of
- '4415202000': { NumGrMC := Word(0);
- arGrMC[2] := '';
- arGrMC[3] := '';
- TNVEDShort := SubStr(KatMC.TNVED,1,6) ;
- }
- End;
- }
- //условие для кирпича
- if (KatMC.TNVED = '6904100000') {
- Case KatMC.TNVED of
- '6904100000': { NumGrMC := Word(11);
- arGrMC[2] := Trim(SpMCName);
- arGrMC[3] := Trim(SpMCName);
- TNVEDShort := SubStr(KatMC.TNVED,1,6) ;
- }
- End;
- }
- GetArrayPackages;
- tbSPInv.NumGroupMC := NumGrMC;
- tbSPInv.SokrTNVED := TNVEDShort;
- If (Not PrPackMC)
- If (Insert current tbSPInv = tsOk)
- FormDone := True;
- If Modifier GetFirst tbGrSPInv Where (( trim(NumGrMC) == tbGrSPInv.NumGroupMC )) = tsOk
- {
- tbGrSPInv.NumGroupMC := NumGrMC;
- tbGrSPInv.TNVED_MC := KatMC.TNVED;
- tbGrSPInv.enTNVED_MC := '';
- If ( KatOtpEd.Koef<>1 )
- {
- tbGrSPInv.Kolvo += round(SpStep.KolSkl*KatOtpEd.Koef,3);
- tbGrSPInv.Kolvo1 += SpStep.KolSkl;
- tbGrSPInv.NetW += round(KatMC.Massa*SpStep.KolSkl*KatOtpEd.Koef,0); //27-07-2018 добавлено округление как в старом ресурсе
- tbGrSPInv.GrossW += round((KatMC.Massa+KatMC.MTara)*SpStep.KolSkl*KatOtpEd.Koef,0); //27-07-2018 добавлено округление как в старом ресурсе
- }
- Else
- {
- tbGrSPInv.Kolvo += round(SpStep.KolSkl,3);
- tbGrSPInv.NetW += round(KatMC.Massa*SpStep.KolSkl,0); //27-07-2018 добавлено округление как в старом ресурсе
- tbGrSPInv.GrossW += round((KatMC.Massa+KatMC.MTara)*SpStep.KolSkl,0); //27-07-2018 добавлено округление как в старом ресурсе
- }
- //объем м3 = объем всех ящиков
- if (KatOtpEdAkt.KOEF = 1) {
- tbGrSPInv.ob_p += (SpStep.KolSkl / KatOtpEdBox.KOEF) * KatMC.volume; //наращиваем объем всех ящиков для отп.ед. м2
- } else {
- tbGrSPInv.ob_p += (SpStep.KolSkl/(KatOtpEdBox.KOEF/KatOtpEdAkt.KOEF)) * KatMC.volume; //наращиваем объем всех ящиков для отп.ед. шт
- }
- // message (string(KatMC.Massa));
- // message (string(KatMC.MTara));
- // message ('1 '+KatMC.NAME+' = '+ SpStep.KolSkl +' * ('+KatMC.Massa +'+'+KatMC.MTara+')') ;
- //message (tbGrSPInv.GrossW);
- Update current tbGrSPInv;
- }
- Else
- {
- ClearBuffer(#tbGrSPInv);
- tbGrSPInv.NumGroupMC := NumGrMC;
- tbGrSPInv.TNVED := arGrMC[1];
- tbGrSPInv.TNVED_MC := KatMC.TNVED;
- tbGrSPInv.enTNVED_MC := '';
- tbGrSPInv.NameGroupMC := arGrMC[2];
- tbGrSPInv.NameGroupMCEN := arGrMC[3]; //07-06-2018
- tbGrSPInv.EDIzm := EdGR;
- If GetFirst KatOtpEd = tsOk {
- tbGrSPInv.EdOtp := LoCase(SubStr(KatOtpEd.Name,1,2));
- tbGrSPInv.EdOtpEN := EdEngl(LoCase(SubStr(KatOtpEd.Name,1,2))); //07-06-2018
- }
- If GetFirst KatED = tsOk {
- if KatMC.TNVED = '6904100000' then { //для кирпича обрезать ед.измерения не нужно
- tbGrSPInv.EdUch := LoCase(KatED.Name);
- tbGrSPInv.EdUchEN := EdEngl(LoCase(KatED.Name)); //07-06-2018
- } else {
- tbGrSPInv.EdUch := LoCase(SubStr(KatED.Name,1,2));
- tbGrSPInv.EdUchEN := EdEngl(LoCase(SubStr(KatED.Name,1,2))); //07-06-2018
- }
- }
- If ( KatOtpEd.Koef <> 1 )
- {
- tbGrSPInv.Kolvo := SpStep.KolSkl*KatOtpEd.Koef;
- tbGrSPInv.Kolvo1 := SpStep.KolSkl;
- tbGrSPInv.NetW := round(KatMC.Massa*SpStep.KolSkl*KatOtpEd.Koef,0); //27-07-2018 добавлено округление как в старом ресурсе
- tbGrSPInv.GrossW := round((KatMC.Massa+KatMC.MTara)*SpStep.KolSkl*KatOtpEd.Koef,0); //27-07-2018 добавлено округление как в старом ресурсе
- tbGrSPInv.EDIzm := LoCase(SubStr(KatED.Name,1,2)+'/'+SubStr(KatOtpEd.Name,1,2));
- //07-06-2018
- tbGrSPInv.EDIzmEN := EdEngl(LoCase(SubStr(KatED.Name,1,2)))+ ' / ' + EdEngl(LoCase(SubStr(KatOtpEd.Name,1,2)));
- }
- Else
- {
- tbGrSPInv.Kolvo := SpStep.KolSkl;
- tbGrSPInv.NetW := round(KatMC.Massa*SpStep.KolSkl,0); //27-07-2018 добавлено округление как в старом ресурсе
- tbGrSPInv.GrossW := round((KatMC.Massa+KatMC.MTara)*SpStep.KolSkl,0); //27-07-2018 добавлено округление как в старом ресурсе
- tbGrSPInv.EDIzm := LoCase(KatOtpEd.Name);
- //07-06-2018
- tbGrSPInv.EDIzmEN := EdEngl(LoCase(KatOtpEd.Name));
- }
- // message ('2 '+KatMC.NAME+' = '+ SpStep.KolSkl +' * ('+KatMC.Massa +'+'+KatMC.MTara+')') ;
- // message (tbGrSPInv.GrossW);
- if KatMC.TNVED = '4415202000' then {
- vesPod := KatMC.Massa+KatMC.MTara;
- }
- //если выделяется грузоместо для сидений
- //в FR отнимаем от общего веса в строке санизделий вес грузоместа сидений
- if (KatMC.TNVED = '3922200000') and pr = 1 then {
- tbGrSPInv.GrossW := vesPod + tbGrSPInv.GrossW ;
- mSid := vesPod; //вес поддона грузоместа
- }
- //07-06-2018
- If ( KatMC.TNVED = '7016100000' Or SubStr(KatMC.TNVED,1,6) = '690721' Or
- Substr(KatMC.TNVED,1,6) = '690723' Or SubStr(KatMC.TNVED,1,6) = '690722' Or
- Substr(KatMC.TNVED,1,6) = '690730' )
- {
- If ( KatMC.TNVED = '7016100000' ) {
- tbGrSPInv.NameGroupMCPack := 'Изделия из стекла';
- tbGrSPInv.NameGroupMCPackEN := 'Glass elements';
- tbGrSPInv.ShortTNVED_MC := Substr(KatMC.TNVED,1,6);
- }
- If ( SubStr(KatMC.TNVED,1,6) = '690721' ) {
- tbGrSPInv.NameGroupMCPack := 'Плитка керам.: ' + SubStr(KatMC.TNVED,1,6);
- tbGrSPInv.NameGroupMCPackEN := 'Ceramic tiles';
- tbGrSPInv.ShortTNVED_MC := Substr(KatMC.TNVED,1,6);
- }
- If ( SubStr(KatMC.TNVED,1,6) = '690723' ) {
- tbGrSPInv.NameGroupMCPack := 'Плитка керам.: ' + SubStr(KatMC.TNVED,1,6);
- tbGrSPInv.NameGroupMCPackEN := 'Ceramic tiles';
- tbGrSPInv.ShortTNVED_MC := Substr(KatMC.TNVED,1,6);
- }
- If ( SubStr(KatMC.TNVED,1,6) = '690722' ) {
- tbGrSPInv.NameGroupMCPack := 'Плитка керам.: ' + SubStr(KatMC.TNVED,1,6);
- tbGrSPInv.NameGroupMCPackEN := 'Ceramic tiles';
- tbGrSPInv.ShortTNVED_MC := Substr(KatMC.TNVED,1,6);
- }
- If ( SubStr(KatMC.TNVED,1,6) = '690730' ) {
- tbGrSPInv.NameGroupMCPack := 'Ковры мозаич.: ' + SubStr(KatMC.TNVED,1,6);
- tbGrSPInv.NameGroupMCPackEN := 'Ковры мозаич.';
- tbGrSPInv.ShortTNVED_MC := Substr(KatMC.TNVED,1,6);
- }
- }
- //07-06-2018
- //вес и кол-во поддонов
- if (KatMC.TNVED = '4415202000' or
- Trim(KATMC.BARKOD)='Т000001' Or
- Trim(KATMC.BARKOD)='Т000002' Or
- Trim(KATMC.BARKOD)='Т000003' Or
- Trim(KATMC.BARKOD)='99010086-9') {
- kolPalletKir := tbGrSPInv.Kolvo;
- GrossWPalletS := GrossWPalletS + tbGrSPInv.GrossW;
- }
- //07-06-2018
- //для санизделий прибавляем вес поддонов
- if KatMC.TNVED = '6910100000' {
- tbGrSPInv.GrossW := tbGrSPInv.GrossW+pPallet /*GrossWPalletS*/;
- tbGrSPInv.ShortTNVED_MC := Substr(KatMC.TNVED,1,6);
- }
- //07-06-2018
- //для кирпича прибавляем вес поддонов и считаем их кол-во
- if KatMC.TNVED = '6904100000' {
- tbGrSPInv.Packages := kolPalletKir;
- //arPackages[13] := kolPalletKir;
- tbGrSPInv.GrossW := tbGrSPInv.GrossW + GrossWPalletS/*GrossWPallet*/;
- colBrikPod := round(SpStep.KolSkl /KatOtpEdPack.koef, 0)//вол-во грузомест
- //message (GrossWPalletS);
- }
- if KatMC./*TNVED*/KGROUPMC = /*'4415202000'*/'41' {
- wBrikPallets := GrossWPalletS;
- //message(wBrikPallets + ' вес своих поддонов');
- }
- //если в накладной нету поддонов, значит покупатель берет собственные
- //в галактике вес собственных не вносится и ориентировочно равен 30 кг
- if GrossWPalletS = 0 {
- wBrikPallets := colBrikPod * 30;
- //GrossWPalletS := katotped.cmcusl;
- //message(colBrikPod + ' поддоны(грузоместа)');
- //message(SpStep.KolSkl /KatOtpEdPack.koef + ' кол_груз_мест');
- //message(ROUND(SpStep.KolSkl, 3) + ' кирпичей отложено');
- //message(ROUND(KatOtpEdPack.koef, 3) + ' коэф');
- //message(wBrikPallets + ' вес поддонов заказчика');
- }
- If (Not PrPackMC) {
- Insert current tbGrSPInv;
- }
- }
- // средство пакетирования
- If (PrPackMC) { //поддоны покупателя
- If ((Not PrSopr) Or (PalletSan+PalletPlit)>0)
- {
- If PalletSan > 0
- { // поддоны для сантехники
- KolPackSI := PalletSan;
- GrossWPackSI := Round((katmc.massa + katmc.mtara)*PalletSan,2);
- WPackSI := KatMC.Massa + KatMC.Mtara;
- PalletSan := 0;
- }
- If PalletPlit > 0
- {
- KolPackPL := PalletPlit; // плитка поддоны покупателя
- GrossWPackPL := Round((KatMC.massa+KatMC.mtara)*PalletPlit,2);
- PalletPlit := 0;
- }
- If GetFirst Dores = tsOk
- {
- _Loop Dores
- {
- //If dores.cpodr = Comp(4000A36470B40052h) Or (dores.cmol = Comp(281474976710891) And PrSanIzd)
- If Dores.cpodr = Comp(4000A36470B40052h) Or (Dores.cmol = Comp(281474976710891))
- {
- KolPackSI += Dores.kol; // сантехника
- GrossWPackSI += Round((KatMC.massa + KatMC.mtara)*Dores.kol,2);
- WPackSI := KatMC.massa + KatMC.mtara;
- }
- Else
- {
- KolPackPL += dores.kol;
- GrossWPackPL += Round((KatMC.massa + KatMC.mtara)*Dores.kol,2);
- }
- }//_Loop Dores
- }//If GetFirst Dores
- }//If ((Not PrSopr) Or (PalletSan+PalletPlit)>0)
- If Modifier GetFirst tbSPInvPack Where (( Trim(KATMC.BARKOD) == tbSPInvPack.BARKOD )) = tsOk
- {
- If (BaseDoc.Vhodnal = Word(1)) //Налоги включены в цену
- tbSPInvPack.SumWithNDS += SpStep.Price * SpStep.KolSkl;
- If (BaseDoc.Vhodnal = Word(2)) //Налоги не включены
- tbSPInvPack.SumWithNDS += SpStep.Price * SpStep.KolSkl + SpStep.NDS;
- tbSPInvPack.SumNoNDS += SpStep.Summa;
- tbSPInvPack.SumNDS += SpStep.NDS;
- If ( KatOtpEd.Koef <> 1 ) {
- tbSPInvPack.Kolvo += SpStep.KolSkl*KatOtpEd.Koef;
- } Else {
- tbSPInvPack.Kolvo += SpStep.KolSkl;
- }
- Update current tbSPInvPack;
- packet := tbSPInvPack.Kolvo;
- }
- Else
- {
- ClearBuffer(#tbSPInvPack);
- tbSPInvPack.NameGroupMC := 'Средство пакетирования';
- tbSPInvPack.NameGroupMCEN := 'Packages';
- tbSPInvPack.BARKOD := Trim(KATMC.BARKOD);
- tbSPInvPack.PriceNoNDS := SpStep.Price;
- /*If (TRIM(KATMC.BARKOD)='Т000001' Or TRIM(KATMC.BARKOD) = 'Т000002')*/
- //Средства пакетирования проставляются только для кирпича.
- //Следовательно обработаем только поддоны для кирпича определив их по баркоду
- If (TRIM(KATMC.BARKOD)='Т000003')
- If GetFirst ANamCO = tsOk
- If GetFirst AValCO = tsOk
- tbSPInvPack.COrigin := AValCO.VSTRING;
- IF AValCO.VSTRING = 'РБ' and ((ReportID = Word(0005) and OptInv = Word(1))
- OR (ReportID = Word(0007) and OptInv = Word(0)) OR (ReportID = Word(0003))OR (ReportID = Word(0003)) ) {
- tbSPInvPack.COrigin := 'РБ';
- }
- If ( SpStep.NDS <> 0 ) {
- tbSPInvPack.NDS := DoubleToStr((doGetTune('NALOG.STAV1')),'66')+'%';
- } else { //07-06-2018 что бы в отчете выводилось не пустое поле, 0%
- tbSPInvPack.NDS := '0%';
- }
- If (BaseDoc.Vhodnal = Word(1)) //Налоги включены в цену
- tbSPInvPack.SumWithNDS := SpStep.Price * SpStep.KolSkl;
- If (BaseDoc.Vhodnal = Word(2)) //Налоги не включены
- tbSPInvPack.SumWithNDS := SpStep.Price * SpStep.KolSkl + SpStep.NDS;
- tbSPInvPack.SumNoNDS := SpStep.Summa;
- tbSPInvPack.SumNDS := SpStep.NDS;
- If ( KatOtpEd.Koef <> 1 ) {
- tbSPInvPack.Kolvo := SpStep.KolSkl*KatOtpEd.Koef;
- } Else {
- tbSPInvPack.Kolvo := SpStep.KolSkl;
- }
- packet:= packet+tbSPInvPack.Kolvo;
- tbSPInvPack.Kolvo := packet;
- Insert current tbSPInvPack;
- } //tbSPInvPack.Kolvo := packet;
- }//If (PrPackMC)
- }//_Loop SpStep
- // tbGrSPInv.GrossW := tbGrSPInv.GrossW +1008;
- }//If GetFirst SpStep
- }//_Loop StepDoc
- }//If GetFirst StepDoc
- GrossWPackPL := Round(GrossWPackPL,0)
- GrossWPackSI := Round(GrossWPackSI,0) ;
- WPackSI := Round(WPackSI,0) //Round(GrossWPackSI / KolPackSI,2)
- WPackPL := Round(GrossWPackPL / KolPackPL,2) // т.к. в счете могут быть поддоны с разным весом
- For ( i := 1; i <= 15; i += 1) {
- arPackages[16] += arPackages[i];
- //message('arPackages[16] = '+arPackages[16]+'; KolPackPL = '+KolPackPL + '; arPackages['+i+'] = '+arPackages[i]);
- }
- //message('arPackages[16] = '+arPackages[16]+'; KolPackPL = '+KolPackPL + '; arPackages[1] = '+arPackages[1] + + '; arPackages[5] = '+arPackages[5]) ;
- //07-06-2018
- //если по cф поддонов больше, чем рассчитано по кодам ТНВЕД
- if KolPackPL > 0
- {
- if arPackages[16]< KolPackPL
- {
- //message(arPackages[1]);
- if arPackages[1] > 0
- { //если есть значение в облицовочной плитке, прибавляем остаток
- arPackages[1] := arPackages[1] + (KolPackPL - arPackages[16]);
- //message(arPackages[1] + 'inside');
- }
- else
- {
- if arPackages[1] = 0 and arPackages[4] > 0
- {// иначе смотрим есть ли значение в неглаз. плитке для пола и добавляем к ней остаток
- arPackages[4] := arPackages[4] + (KolPackPL - arPackages[16]);
- }
- else
- {
- if arPackages[5] > 0
- {// иначе смотрим есть ли значение в глаз. плитке для пола и добавляем к ней остаток
- arPackages[5] := arPackages[5] + (KolPackPL - arPackages[16]);
- }
- }
- }
- arPackages[16] := 0; //обнуляем итог
- For (i := 1; i <= 15; i += 1) //суммируем заново сумму поддонов по коду ТНВЕД
- arPackages[16] += arPackages[i];
- }
- }
- //если поддоны не распределились по группе плиток
- if arPackages[16] = 0 {
- if (arPackages[1] = 0 and arPackages[5] = 0 and arPackages[4] = 0) {
- if pr_obl = 1 {
- arPackages[1] := KolPackPL;
- }
- if pr_ng = 1 {
- arPackages[4]:= KolPackPL;
- }
- if pr_gl = 1 {
- arPackages[5]:= KolPackPL;
- }
- }
- arPackages[16] := 0; //обнуляем итог
- For (i := 1; i <= 15; i += 1) //суммируем заново сумму поддонов по коду ТНВЕД
- arPackages[16] += arPackages[i];
- }
- //endif
- ArrayToVar;
- if (ReportID = Word(0001) Or // Счет-фактура в валюте (жд, авто 24_0005)
- ReportID = Word(0002) Or // Счет на оплату в валюте (жд, авто 24_0005)
- ReportID = Word(0005) Or // 'Счет-фактура в валюте ENGL (жд, авто 24_0005)'
- ReportID = Word(0007) Or //'Счет на оплату в валюте ENGL (жд, авто 24_0005)'
- ReportID = Word(0008) // Счет-фактура в валюте со штрих-кодом
- )
- {
- If Message('Указать банковские реквизиты?',YesNo)=cmYes
- isPrintReqiz := 1;
- Else
- isPrintReqiz := 0;
- };
- If (ReportID = Word(3) Or
- ReportID = Word(4)
- )
- UpdateTbGrSPInv;
- Else
- If (
- ReportID <> Word(0013)
- ) { //для CMR кирпича не вызываем
- RunWindowModal(WnPackPyTNVED);
- }
- }//If GetFirst BaseDoc
- }//Procedure FillSpecification;
- Procedure FillReport;
- {
- StartNewVisual(vtNumericVisual, vfTimer+vfBreak+vfConfirm,
- ''#3'Обработка данных: ДО', 1);
- Delete All tbGrSPInv;
- Delete All tbSPInv;
- FormDone := False;
- PrMyBankSwift := False;
- PrBankCorr := False;
- FillHeader;
- FillSpecification;
- PrintSopr;
- //для CMR по кирпичу заполняем уточняющие данные
- If (
- ReportID = Word(0013)
- ) {
- RunWindowModal(WnCustomerTran)
- };
- StopVisual('',0);
- }
- DataStream InvDataStream
- (
- [NameDocSF] NameDocSF;
- [NameDocSFEN] If(OptInv = Word(1), 'Invoice', 'Invoice for payment');
- [NumDocSF] BaseDoc.NoDoc;
- [MyOrg] MyOrg;
- [IndexMyOrg] IndexMyOrg;
- [UNNMyOrg] UNNMyOrg;
- [AddrMyOrg] AddrMyOrg;
- [AddrMyOrgTotal] AddrMyOrgTotal;
- [BuyOrg] BuyOrg;
- [IndexBuyOrg] IndexBuyOrg;
- [UNNBuyOrg] UNNBuyOrg;
- [AddrBuyOrg] AddrBuyOrg;
- [AddrBuyOrgTotal] AddrBuyOrgTotal;
- [AddrBuyOrgTotalEngl] IF (AddrBuyOrgTotalEngl='','',AddrBuyOrgTotalEngl+'/');
- [OrgGruzOtpr] OrgGruzOtpr;
- [IndexGruzOtpr] IndexGruzOtpr;
- [AddrGruzOtpr] AddrGruzOtpr;
- [AddrGruzOtprTotal] AddrGruzOtprTotal;
- [OrgGruzPol] OrgGruzPol;
- [OrgGruzPolEngl] if(OrgGruzPolEngl='','',OrgGruzPolEngl+if(AddrGruzPolTotalEngl='',' / ',', ')) ;
- [IndexGruzPol] IndexGruzPol;
- [AddrGruzPol] AddrGruzPol;
- [AddrGruzPolTotal] AddrGruzPolTotal;
- [AddrGruzPolTotalEngl] if(AddrGruzPolTotalEngl='','',AddrGruzPolTotalEngl+' / ');
- [CityFrom] CityFrom;
- [CityTo] CityTo;
- //Реквизиты Банка
- [PrTypeMoney] BaseDoc.TIPMONEY;
- [FieldMyBankMFO] If(PrMyBankSwift, 'SWIFT', 'МФО');
- [PrBankCorr] PrBankCorr;
- [MyBankName] MyBankName;
- [MyBankAddr] MyBankAddr;
- [MyBankSwift] MyBankSwift;
- [MyBankAcc] MyBankAcc;
- [CorrBankName] CorrBankName;
- [CorrBankSwift] CorrBankSwift;
- [CorrBankAcc] CorrBankAcc;
- [BazisPost] TipOtg.Name;
- [BazisPostEngl] AValTipOgr.VSTRING + If(Trim(AValTipOgr.VSTRING) = '','',' / '); //28-03-2019
- [DestPost] AValDest.VSTRING;
- [Container] Container;
- [NumVagon] NumVagon;
- [NumSoprRailway] NumSoprRailway;
- [DelConditions] If(Trim(DelConditions)='','FCA Г.МИНСК',DelConditions);
- [DelConditionsEN] If(Trim(DelConditions)='','FCA, Minsk / Г.МИНСК', if (trim(DelConditionsEngl)='',replace (DelConditions,'Г.МИНСК','Minsk'),trim(DelConditionsEngl)+'/'+replace (DelConditions,'Г.МИНСК','Minsk')));
- [StationOtpr] StationOtpr;
- [StationOtprEngl] StationOtprEngl;
- [NumSopr] NumSopr;
- [NumDateDog] DOGOVOR.NODOC + ' от '+ DateToStr(DOGOVOR.DDOC,'DD/MM/YYYY');
- [NumDateDogEn] DOGOVOR.NODOC + ' dd '+ DateToStr(DOGOVOR.DDOC,'DD/MM/YYYY');
- [NumPlatDoc] If(PrUzbek,DOGOVOR.NODOC + ' от '+ DateToStr(DOGOVOR.DDOC,'DD/MM/YYYY'),NumDatePlat);
- [NumPlatDocV2] NumDatePlat;
- [DateDoc] DateDoc;
- [PalletSan] PalletSan;
- [PalletPlit] PalletPlit;
- [ZagPrice] ZagPrice;
- [ZagPriceEN] ZagPriceEN;
- [vCurrency] If(PrUkraine,vCurrency,'');
- [vSimvolV] vSimvolV;
- [TotalSumNoNDS] DoubleToStr(Round(TotalSumNoNDS,2),FormatSum);
- [TotalSumNDS] DoubleToStr(Round(TotalSumNDS,2),FormatSum);
- [TotalSumWithNDS] DoubleToStr(Round(TotalSumWithNDS + SumZalog,2),FormatSum);
- [TotalSumWithNDS_D] Round(TotalSumWithNDS + SumZalog,2);
- [TotalSumWithNDSEngl_D] replace(DoubleToStringInVal (CVAL,Round(TotalSumWithNDS + SumZalog,2)),'thousands','thousand');
- [SumZalog] DoubleToStr(Round(SumZalog,2),FormatSum);
- [SumZalog_D] SumZalog;
- [Transport] Transport;
- [arSign_Posit_1] arSign_Posit[1];
- [arSign_Posit_2] arSign_Posit[2];
- [arSign_Posit_3] arSign_Posit[3];
- [arSign_Name_1] arSign_Name[1];
- [arSign_Name_2] arSign_Name[2];
- [arSign_Name_3] arSign_Name[3];
- [massSid] round(mSid, 0); //13/11/18
- [wBrikPallets] wBrikPallets; //добавил вес тары кирпича отдельной переменной чтоб не сломать чужой код
- [colBrikPod] colBrikPod;
- [isPrintReqiz] isPrintReqiz;
- [kolPalletKir] kolPalletKir;
- //Данные для CMR
- [TTNNum] KATSOPR.NSOPR;
- [TTNDate] /*KATSOPR.DSOPR*/basedoc.nrec;
- [CMRNum] addCmrNum;
- [tStartLoad] TTNDOC.TPUNPBEG;
- [tFinishLoad] TTNDOC.TPUNPEND;
- [dStartLoad] TTNDOC.DPUNRBEG;
- [dFinishLoad] TTNDOC.DPUNREND;
- [showPasport] showPasport;
- [showSertConf] showSertConf;
- [showSertOrigin] showSertOrigin;
- [showDeclConf] showDeclConf;
- [telGruzPol] telGruzPol;
- [nameStatePol] KatStatePol.Name;
- [grRowCount] grRowCount;
- [custName] custName;
- [custCountry] custCountry;
- [custAddress] custAddress;
- [trailer] AValTrailer.VSTRING;
- [avto] AValAvto.VSTRING;
- [BackCargo] AValBackCargo.VSTRING;
- [PaymCond ] getPaymCond(shipment.name);
- Table tbGrSPInv (
- [tbGrSPInv_NumGroupMC] tbGrSPInv.NumGroupMC;
- [tbGrSPInv_TNVED] tbGrSPInv.TNVED;
- [tbGrSPInv_TNVEDKatMC] Replace(tbGrSPInv.TNVED,' ','');
- [tbGrSPInv_ShortTNVED_MC] tbGrSPInv.ShortTNVED_MC;
- [tbGrSPInv_TNVED_MC] tbGrSPInv.TNVED_MC;
- [tbGrSPInv_enTNVED_MC] tbGrSPInv.enTNVED_MC;
- [tbGrSPInv_NameGroupMC] tbGrSPInv.NameGroupMC;
- [tbGrSPInv_NameGroupMCEN] tbGrSPInv.NameGroupMCEN;
- [tbGrSPInv_NameGroupMCPack] tbGrSPInv.NameGroupMCPack;
- [tbGrSPInv_NameGroupMCPackEN] tbGrSPInv.NameGroupMCPackEN;
- [tbGrSPInv_EdOtp] If(tbGrSPInv.Kolvo1<>0, 'шт'/*tbGrSPInv.EdOtp*/,'');
- [tbGrSPInv_EdOtpEN] If(tbGrSPInv.Kolvo1<>0, 'pc'/*tbGrSPInv.EdOtpEN*/,'');
- [tbGrSPInv_EdUch] tbGrSPInv.EdUch;
- [tbGrSPInv_EdUchEN] tbGrSPInv.EdUchEN;
- [tbGrSPInv_EDIzm] If(tbGrSPInv.Kolvo1<>0,tbGrSPInv.EdUch+'/ шт',tbGrSPInv.EDIzm);//tbGrSPInv.EDIzm // т.к. по некоторым группа неверно выводятся ед в итоговых строчках
- [tbGrSPInv_EDIzmEN] If(tbGrSPInv.Kolvo1<>0,tbGrSPInv.EdUchEN+'/pc',tbGrSPInv.EDIzmEN);//tbGrSPInv.EDIzmEN;
- [tbGrSPInv_KolvoGrMC] If(tbGrSPInv.Kolvo1<>0,DoubleToStr(Round(tbGrSPInv.Kolvo,3),FormatKol)+'/'+DoubleToStr(tbGrSPInv.Kolvo1,'666666666'),DoubleToStr(Round(tbGrSPInv.Kolvo,3),FormatKol));
- [tbGrSPInv_Kolvo] DoubleToStr(Round(tbGrSPInv.Kolvo,3),FormatKol);
- [tbGrSPInv_Kolvo1] DoubleToStr(tbGrSPInv.Kolvo1,'666666666');
- [tbGrSPInv_Packages] If(tbGrSPInv.Packages=0,'Часть паллеты',DoubleToStr(tbGrSPInv.Packages,'6666'));
- [tbGrSPInv_NetW] Round(tbGrSPInv.NetW,0);
- [tbGrSPInv_GrossW] If(PrUkraine,Round(tbGrSPInv.GrossW,2),Round(tbGrSPInv.GrossW,0));
- [tbGrSPInv_pRow] tbGrSPInv.pRow;
- [TNVEDShortName] nameMcCMR(Replace(tbGrSPInv.TNVED,' ',''));
- [NamePackages] declensionPackages(tbGrSPInv.Packages);
- [volume] tbGrSPInv.ob_p + (tbGrSPInv.Packages * 0.144); //объем плитки и сантехники. 0.144 - константа
- [volumeBrick] colBrikPod * 0.1125 + ((tbGrSPInv.Kolvo/1.35*1000)/378); //0.1125 - константа 1,35 - перевод условных шт в обычные. 378 - кт- перевода в объем
- );
- Table tbSPInv (
- [tbSPInv_Name] tbSPInv.Name;
- [tbSPInv_NameEN] tbSPInv.NameEN;
- [tbSPInv_EdOtp] tbSPInv.EdOtp;
- [tbSPInv_KoefOtp] tbSPInv.KoefOtp;
- [tbSPInv_EdUch] tbSPInv.EdUch;
- [tbSPInv_EDIzm] tbSPInv.EDIzm;
- [tbSPInv_EDIzmEN] tbSPInv.EDIzmEN;
- [tbSPInv_TNVED] tbSPInv.TNVED;
- [tbSPInv_SokrTNVED] tbSPInv.SokrTNVED;
- [tbSPInv_Kolvo] tbSPInv.Kolvo;
- [tbSPInv_PriceNoNDS] tbSPInv.PriceNoNDS;
- [tbSPInv_SumNoNDS] tbSPInv.SumNoNDS;
- [tbSPInv_SumNDS] tbSPInv.SumNDS;
- [tbSPInv_NDS] tbSPInv.NDS;
- [tbSPInv_SumWithNDS] tbSPInv.SumWithNDS;
- [tbSPInv_COrigin] tbSPInv.COrigin;
- [tbSPInv_NumGroupMC] tbSPInv.NumGroupMC;
- [tbSPInv_NameGroupMC] tbSPInv.NameGroupMC;
- [tbSPInv_OBOZN] tbSPInv.OBOZN;
- [tbSPInv_volume] tbSPInv.volume; //объем продукции
- [tbSPInv_kBoxMc] tbSPInv.kBoxMc; //коэффициент ед.изм. ящиков
- [tbSPInv_kAktMc] tbSPInv.kAktMc; //коэффициент активной ед.изм.
- [tbSPInv_ob_p] tbSPInv.ob_p; //объем продукции по спецификации
- );
- Table tbSPInvPack (
- [tbSPInvPack_NameGroupMC] tbSPInvPack.NameGroupMC;
- [tbSPInvPack_NameGroupMCEN] tbSPInvPack.NameGroupMCEN;
- [tbSPInvPack_BARKOD] tbSPInvPack.BARKOD;
- [tbSPInvPack_Kolvo] Round(packet,0); //изменено 23-07-2018 сумма пакетирования (поддонов) не сходилась с суммой поддонов в СФ
- [tbSPInvPack_PriceNoNDS] DoubleToStr(Round(tbSPInvPack.PriceNoNDS,2),FormatSum);
- [tbSPInvPack_NDS] tbSPInvPack.NDS;
- [tbSPInvPack_SumWithNDS] DoubleToStr(Round(tbSPInvPack.SumWithNDS,2),FormatSum);
- [tbSPInvPack_SumNoNDS] DoubleToStr(Round(tbSPInvPack.SumNoNDS,2),FormatSum);
- [tbSPInvPack_SumNDS] DoubleToStr(Round(tbSPInvPack.SumNDS,2), FormatSum);
- [tbSPInvPack_COrigin] tbSPInvPack.COrigin;
- );
- )
- Handleevent table tbSPInv //Handleevent уровня Table
- cmOnProcess:
- if (not NextVisual)
- BreakProcess;
- end;
- Handleevent //Handleevent уровня DataStream
- cmPreProcess:
- StartNewVisual(vtRotateVisual, vfTimer + vfBreak + vfConfirm, 'Формируется отчет в FastReport', 0);
- cmPostProcess:
- StopVisual('', 0);
- end;
- end;//DataStream
- Function PrintFR(cBaseDoc : Comp; ReportName : String; kodNrec : MasVidSopr) : Boolean;
- {
- saveInLogTable(ReportName, 'OPEN', 'nrec = '+ cBaseDoc, '');
- Result := False;
- //ccBaseDoc := cBaseDoc;
- //заполняем #tPickDoc
- Delete All tPickDoc;
- for (i := 1; i<= count (kodNrec); i := i+1){
- if (kodNrec[i] <> comp(0)){
- tPickDoc.cRec := kodNrec[i];
- Insert current tPickDoc;
- message('вставлен crec в to tPickDoc: '+ kodNrec[i])
- }
- };
- _Loop tPickDoc
- {
- message(' Циклом приходимся по tPickDoc.cRec: '+ tPickDoc.cRec);
- };
- Case ReportName of
- 'Счет-фактура в валюте (жд, авто 24_0005)' : { ReportID := Word(0001); OptInv := Word(1); }
- 'Счет на оплату в валюте (жд, авто 24_0005)' : { ReportID := Word(0002); OptInv := Word(0); }
- 'Счет-фактура в валюте (МКЗ жд, авто 24_0005)' : { ReportID := Word(0003); OptInv := Word(1); }
- 'Счет на оплату в валюте (МКЗ жд, авто 24_0005)' : { ReportID := Word(0004); OptInv := Word(0); }
- 'Счет-фактура в валюте ENGL (жд, авто 24_0005)' : { ReportID := Word(0005); OptInv := Word(1); }
- 'Счет на оплату в валюте ENGL (жд, авто 24_0005)': { ReportID := Word(0007); OptInv := Word(0); }
- 'Заявление на получение сертификата происхождения (24_0005)' : { ReportID := Word(0006); OptInv := Word(1);}
- 'Счет-фактура в валюте со штрих-кодом (жд, авто 24_0005)' : { ReportID := Word(0008); OptInv := Word(1);}
- 'Счет на оплату в валюте со штрих-кодом (жд, авто 24_0005)' : { ReportID := Word(0009); OptInv := Word(0);}
- 'CMR-накладная Венесуэла, Ливия 24_0005' : { ReportID := Word(0010); OptInv := Word(2);}
- 'CMR-накладная Печать бланка 24_0005' : { ReportID := Word(0011); OptInv := Word(2);}
- 'CMR-накладная 24_0005' : { ReportID := Word(0012); OptInv := Word(2);}
- 'CMR-накладная Кирпич принтер OKI 3310 24_0005' : { ReportID := Word(0013); OptInv := Word(2);}
- End;
- Var
- ReportsNames: Array [0..0] of String;
- FReport := FRCreate(InvDataStream);
- FillReport;
- If (FormDone)
- {
- If (FROpenReport(FReport, ReportName))
- {
- Var
- ExportParam : frxRTFExportParam;
- ClearAdvRecord(ExportParam);
- FRGetDefaultParameters(frExportRTF, ExportParam);
- ExportParam.ShowDialog := False;
- ExportParam.OpenAfterExport := True;
- ExportParam.WISYWIG := False;
- ExportParam.Picture := False;
- ExportParam.PageBreaks := True;
- If (FRSetParameters(FReport, frExportRTF, ExportParam)) Then
- FRExportReport(FReport, frExportRTF, TranslatePath('%OutputFilesDirectory%' + ReportName + '.rtf'));
- saveInLogTable(ReportName, 'CLOSE', 'nrec = '+ cBaseDoc, 'Д-т № '+BaseDoc.NoDoc);
- //FRDesignReport(FReport); //открыть дизайнер
- }
- Else
- Message('Не удалось загрузить шаблон отчета.')
- }
- Else
- { Message(''#3'Нет данных для формирования отчета', Error); Exit; }
- //RunWindowModal(WnFRPrintInv);
- FRDestroy(FReport);
- Result := True;
- }
- end. //interface
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement