Bladeren bron

240725-1543-Kim

hokky 4 maanden geleden
bovenliggende
commit
e7326c57ce

+ 3 - 5
dabory/para/erp/ko_KR/form/form-b/sales/sales.json

@@ -149,7 +149,7 @@
             "Status": "",
             "Supplier": "required",
             "Contact": "",
-            "DealType": "",
+            "DealType": "required",
             "VatType": "required",
             "VatTypeRate": "",
             "Delivery": "",
@@ -159,8 +159,8 @@
             "Column2": "",
             "Remarks": "",
             "IsClosed": "",
-            "SgroupName": "",
-            "UserName": ""
+            "SgroupName": "required",
+            "UserName": "required"
         }
     ],
 
@@ -179,7 +179,6 @@
             "VatAmt": "세액*",
             "SumAmt": "합계금액*",
             "StdSalesPrc": "표준매출가#",
-            "DeliDate": "확정납기일*",
             "Ref1": "참고1",
             "Ref2": "참고2",
             "SorderMemo": "품목설명(M)"
@@ -197,7 +196,6 @@
             "VatAmt": "10",
             "SumAmt": "10",
             "StdSalesPrc": "10",
-            "DeliDate": "8",
             "Ref1": "15",
             "Ref2": "15",
             "SorderMemo": "10"

+ 1 - 14
public/js/modals-controller/b-type/common.js

@@ -218,7 +218,6 @@
     };
 
     Btype.enterPressedinCell = async function (event, type = 1, namespace = 'window') {
-        console.log('enterPressedinCell');
         if ((event.which && event.which == 13) || event.keyCode && event.keyCode == 13) {
             document.activeElement.blur();
             let query, input_class;
@@ -244,7 +243,6 @@
                 $(`.${namespace}.item-modal-btn`).trigger('click');
             } else {
                 let item = response.data.Page[0];
-
                 let next_input = eval(namespace).set_item_data_to_textbox(item);
                 next_input.focus();
             }
@@ -265,7 +263,6 @@
     };
 
     Btype.get_item_id = async function (item_id, namespace = 'window') {
-        console.log('get_item_id');
         let response = await get_api_data('item-pick', {
             Page : [
                 {Id: item_id }
@@ -320,7 +317,6 @@
     };
 
     Btype.handleEnterPressedinTabCell = function (event) {
-        console.log('handleEnterPressedinTabCell');
         if ((event.which && event.which == 13) || event.keyCode && event.keyCode == 13) {
             let table = $(event.target).closest('table');
             let cursor = $($(event.target).closest('tr')).find('td:eq(0) input').attr('name')
@@ -330,7 +326,6 @@
             if (index == Btype.get_last_input_th_index(table)) {
                 $(tr).children(`td:eq(${index})`).find('input').blur();
             }
-
             $(tr).children(`td:eq(${Btype.get_next_tab_index(index, table)})`).find('input').focus();
             $(tr).children(`td:eq(${Btype.get_next_tab_index(index, table)})`).find('input').select();
         }
@@ -379,13 +374,10 @@
     Btype.custom_sum_amt = function (callback) {
         let tr = $(`input[name='bd-cursor-state']:checked`).closest('tr')
         let index = $(tr).prevAll().length
-
         let sum_amt = parseFloat(minusComma($(tr).children('td:eq(10)').find('input').val()));
-
         if (isNaN(sum_amt)) return;
 
         $(tr).children('td:eq(10)').find('input').val(sum_amt.toFixed(window.User['PurchAmtPoint']))
-
         callback(sum_amt, index)
     };
 
@@ -616,7 +608,6 @@
     };
 
     Btype.check_the_checkbox_when_changing = function ($this, checked = true, namespace = 'window') {
-        console.log('check_the_checkbox_when_changing');
         let tr = $($this).closest('tr');
         let index = $(tr).prevAll().length
 
@@ -645,14 +636,11 @@
     };
 
     Btype.fetch_slip_form_book = async function (slip_no, namespace = 'window', callback = undefined) {
-        console.log('fetch_slip_form_book');
         let response = await call_slip_form_book(eval(namespace).formB['General']['PickApi'],
             eval(namespace).formB['QueryVars']['QueryName'], slip_no, menuCode);
         if (isEmpty(callback)) {
-            console.log('1 : ', response);
             eval(namespace).update_hd_ui(response);
         } else {
-            console.log('2');
             callback(response);
         }
     };
@@ -700,7 +688,6 @@
             });
             return false;
         }
-        console.log('save : ', get_parameter());
         Btype.call_act_api(eval(namespace).get_parameter(), function() {
             if (! isEmpty(callback)) { callback(); }
         }, undefined, argObj, namespace);
@@ -722,7 +709,7 @@
         });
         const page = response.data.Page
         if (page) {
-            console.log('page : ', page);
+            // console.log(page);
             set_as_response_id(page[0].Id, argObj)
             return true
         } else {

+ 0 - 1
public/js/modals-controller/b-type/slip.js

@@ -106,7 +106,6 @@ const slip = (function ($, window, document, undefined) {
                 make_pagination('slip', d.PageVars.QueryCnt, page, modal_class_name);
                 let no = get_table_no(d.PageVars.QueryCnt, page, limit);
                 for (let i in d.Page) {
-                    console.log('d.Page : ', d.Page);
                     const onclick = `${$this.data('clicked')}('${d.Page[i].SlipNo}')`;
                     html +=
                     `<tr>

+ 1 - 0
public/js/utils/check-dom.js

@@ -129,6 +129,7 @@ function activate_button_group(argObj = null) {
 }
 
 function input_box_reset_for(argObj, exception_name = [], attr_name = 'id') {
+    console.log('input_box_reset_for');
     // id 초기화
     $(argObj).find('input[name="Id"]').val(0)
     $(argObj).find('#remarks-preview').html('')

+ 18 - 7
resources/views/front/dabory/erp/purchase/porder.blade.php

@@ -350,7 +350,7 @@
 <script src="{{ csset('/js/modals-controller/b-type/common.js') }}"></script>
     <script>
         window.onload = async function () {
-            hdPage = [];
+            ThumbArr = [];
             make_dynamic_table_css('.porder-table', make_dynamic_table_px(formB['ListVars']['Size']))
 
             $('#porder-date').val(date_to_sting(new Date()))
@@ -506,8 +506,7 @@
                 Ref2: bd.Ref2,
                 PorderMemo: bd.PorderMemo,
                 IsEnd: parseInt(bd.IsEnd),
-                Ip: window.User['Ip'],
-                FirstThumb: bd.TurboThumb
+                Ip: window.User['Ip']
             }
             if (id < 0) {
                 parameter = { Id: id }
@@ -536,7 +535,7 @@
         }
 
         async function add_td_last_tap_out($this, id) {
-            Btype.btn_act_save('#squote-form #frm', async function () {
+            Btype.btn_act_save('#porder-form #frm', async function () {
                 let tr = $(`input[name='bd-cursor-state']:checked`).closest('tr')
                 let index = $(tr).prevAll().length
 
@@ -721,8 +720,11 @@
                 VatRate: vat_rate,
                 VatName: vat_name,
                 SgroupName: window.User['SgroupName'],
-                TotalQty : String(Number(total_qty) - 0),
-                FirstThumb : first_thumb
+                TotalQty : String(Number(total_qty) - 0)
+            }
+
+            if (typeof first_thumb !== 'undefined') {
+                parameter.FirstThumb = first_thumb;
             }
 
             if (id < 0) {
@@ -1144,6 +1146,10 @@
             bd_page[index].StdPurchPrc = item.PurchPrc// override_amt_calc_txt_is_changed();
             bd_page[index].TurboThumb = item.TurboThumb
 
+            if (!ThumbArr) { // item 받아왔을 때만 bd_page에 TurboThumb 저장
+                bd_page[index].TurboThumb = item.TurboThumb
+            }
+
             if (bd_page[index].Id === 0) {
                 $(tr).children('td:eq(16)').find('textarea').val(item.ItemMemo)
                 bd_page[index].PorderMemo = item.ItemMemo
@@ -1161,9 +1167,14 @@
             Btype.set_slip_no_btn_disabled()
 
             let hd_page = response.data.HdPage[0]
-            hdPage = hd_page;
             bd_page = response.data.BdPage ?? []
 
+            let thumb = response.data.HdPage[0]['FirstThumb']
+
+            if(!thumb){
+                ThumbArr = thumb;
+            }
+
             $('#Id').val(hd_page.Id)
             $('#auto-slip-no-txt').val(hd_page.PorderNo)
             $('#porder-date').val(moment(to_date(hd_page.PorderDate)).format('YYYY-MM-DD'))

+ 121 - 133
resources/views/front/dabory/erp/revenue/sales.blade.php

@@ -7,7 +7,7 @@
         <div class="col-xl-12">
             <div class="mb-1 pt-2 text-right">
                 <button type="button" hidden
-                    class="btn btn-success btn-open-modal item-modal-btn"
+                    class="btn btn-success btn-open-modal window item-modal-btn"
                     data-target="item"
                     data-clicked="Btype.get_item_id"
                     data-variable="itemModal">
@@ -45,6 +45,7 @@
                         <div class="col-12 col-md-4 col-lg card-header-item">
                             <div class="card card card-primary mb-3 mb-md-2 mb-lg-0 border-light" style="height: 310px">
                                 <div class="card-header p-0 mb-2">
+                                    {{-- <p class="card-title p-1 ml-2">주요 정보</p> --}}
                                 </div>
                                 <div class="card-body">
                                     <input type="hidden" id="Id" name="Id" value="0">
@@ -94,6 +95,7 @@
                         <div class="col-12 col-md-4 col-lg card-header-item">
                             <div class="card card card-info mb-3 mb-md-2 mb-lg-0 border-light" style="height: 310px">
                                 <div class="card-header p-0 mb-2">
+                                    {{-- <p class="card-title p-1 ml-2">거래구분 / 세율</p> --}}
                                 </div>
                                 <div class="card-body">
                                     <div class="form-group d-flex flex-column mb-2">
@@ -204,8 +206,7 @@
                                 <div class="card-body">
                                     <div class="form-group d-flex flex-column mb-2">
                                         <label class="m-0">{{ $formB['FormVars']['Title']['SgroupName'] }}</label>
-                                            {{ $formB['FormVars']['Required']['SgroupName'] }}
-                                            <select class="rounded w-100" data-closed="0" id="sgroup-id-select"
+                                        <select class="rounded w-100" data-closed="0" id="sgroup-id-select"
                                                 maxlength="{{ $formB['FormVars']['MaxLength']['SgroupName'] }}"
                                             {{ $formB['FormVars']['Required']['SgroupName'] }}>
                                         </select>
@@ -237,7 +238,6 @@
                                     <button class="btn btn-sm btn-primary sales-bd-act" data-parameter="{{ $formB['BodySelectOptions'][0]['ParameterName'] ?? '' }}" data-value="{{ $formB['BodySelectOptions'][0]['Value'] }}">
                                             {{ $formB['BodySelectOptions'][0]['Caption'] }}
                                     </button>
-
                                     @include('front.dabory.erp.partial.select-btn-options', [
                                         'selectBtns' => array_slice($formB['BodySelectOptions'], 1),
                                         'eventClassName' => 'sales-bd-act'
@@ -248,7 +248,6 @@
                                     <button class="btn btn-sm btn-primary sales-bd-act" data-value="add">
                                         {{ $formB['FormVars']['Title']['AddNewBdButton'] }}
                                     </button>
-
                                     @include('front.dabory.erp.partial.select-btn-options', [
                                         'selectBtns' => $formB['BodySelectOptions'],
                                         'eventClassName' => 'sales-bd-act'
@@ -360,13 +359,14 @@
 <script src="{{ csset('/js/modals-controller/b-type/common.js') }}"></script>
     <script>
         window.onload = async function () {
+            ThumbArr = [];
             make_dynamic_table_css('.sales-table', make_dynamic_table_px(formB['ListVars']['Size']))
 
+            $('#sales-date').val(date_to_sting(new Date()))
+            $('#stock-date').val(date_to_sting(new Date()))
             var test = Btype.get_storage_name_and_branch_name()
-            console.log();
-            // let sgroup_pick = await get_api_data('sgroup-pick', { Page: [ { Id:  parseInt(window.User['SgroupId']) } ] });
-            // window.User['SgroupName'] = sgroup_pick['data']['Page'][0]['SgroupName'];
-            // console.log('sgroup_pick : ', sgroup_pick);
+            let sgroup_pick = await get_api_data('sgroup-pick', { Page: [ { Id:  parseInt(window.User['SgroupId']) } ] });
+            window.User['SgroupName'] = sgroup_pick['data']['Page'][0]['SgroupName'];
 
             slipInit = await Btype.get_slip_form_init()
             // slipInit = @json($slipFormInitCacheData);
@@ -383,9 +383,7 @@
                 // get_last_slip_no()
             }
 
-            // slip-search cache 사용
             if (formB['SlipCommonSetup']['IsLastSlipGet']) {
-                console.log('여기 체크');
                 // slip-search cache 사용
                 Btype.set_slip_cache_data();
 
@@ -394,8 +392,6 @@
                     await Btype.fetch_slip_form_book(query['QueryVars']['FilterValue']);
                 }
             }
-            // Btype.set_slip_cache_data();
-
 
             $('#sales-table-body').on('click', 'tr', function() {
                 // Find the input element with name="bd-cursor-state" within the clicked row
@@ -405,13 +401,9 @@
                     Btype.bd_cursor_click($bdCursorStateInput)
                 }
             });
-
             Btype.set_slip_no_btn_disabled()
-            $('#sales-date').val(date_to_sting(new Date()))
-            $('#stock-date').val(date_to_sting(new Date()))
 
             $('.sales-act').on('click', function () {
-                // console.log($(this).data('value'))
                 switch( $(this).data('value') ) {
                     case 'save': Btype.btn_act_save('#sales-form #frm'); break;
                     case 'new': btn_act_new(); break;
@@ -439,9 +431,21 @@
                 $('#modal-memo2').find('#memo-textarea').val($('#remarks-txt-area').val())
                 $('#modal-memo2').modal('show')
             });
-
             activate_button_group()
+        }
+
+        function set_company_data_to_textbox(company) {
+            get_override_supplier_id(company.Id)
+            return $('.save-button')
+        }
 
+        // start body act btn
+        function override_btn_bd_act_multi_update() {
+            Btype.btn_bd_act_multi_update('.sales-table')
+        }
+
+        function override_btn_bd_act_multi_delete() {
+            Btype.btn_bd_act_multi_delete('.sales-table')
         }
 
         async function override_seq_no_up_down(move) {
@@ -476,35 +480,25 @@
         function save_data_when_entering_text() {
             let tr = $(`input[name='bd-cursor-state']:checked`).closest('tr')
             let index = $(tr).prevAll().length
-
-            bd_page[index].ConfirmDate = $(tr).children('td:eq(12)').find('input').val()
-            bd_page[index].DeliDate = $(tr).children('td:eq(13)').find('input').val()
+            // bd_page[index].ConfirmDate = $(tr).children('td:eq(12)').find('input').val()
+            // bd_page[index].DeliDate = $(tr).children('td:eq(13)').find('input').val()
             bd_page[index].Ref1 = $(tr).children('td:eq(14)').find('input').val()
             bd_page[index].Ref2 = $(tr).children('td:eq(15)').find('input').val()
         }
 
-        // start body act btn
-        function override_btn_bd_act_multi_update() {
-            Btype.btn_bd_act_multi_update('.sales-table')
-        }
-
-        function override_btn_bd_act_multi_delete() {
-            Btype.btn_bd_act_multi_delete('.sales-table')
-        }
-
-
         async function btn_bd_act_add() {
-            console.log('btn_bd_act_add');
-            if (parseInt($(`#frm`).find(`input[name="Id"]`).val()) == 0) {
-                iziToast.error({
-                    title: 'Error',
-                    message: @json(_e('Action failed')),
-                });
-                return;
-            }
-            if (! Btype.last_item_added_check('#sales-table-body')) {
-                add_tr();
-            }
+            Btype.btn_act_save('#sales-form #frm', async function () {
+                if (parseInt($(`#frm`).find(`input[name="Id"]`).val()) == 0) {
+                    iziToast.error({
+                        title: 'Error',
+                        message: @json(_e('Action failed')),
+                    });
+                    return;
+                }
+                if (! Btype.last_item_added_check('#sales-table-body')) {
+                    add_tr();
+                }
+            });
         }
 
         function btn_bd_act_body_copy(parameter_name) {
@@ -528,12 +522,10 @@
         }
 
         function btn_act_new() {
-            console.log('btn_act_new');
             data_init()
-
-            // if (formB['SlipCommonSetup']['IsNewRecAutoSlipNo']) {
+            if (formB['SlipCommonSetup']['IsNewRecAutoSlipNo']) {
                 get_last_slip_no()
-            // }
+            }
         }
 
         function btn_act_copy_to_another(parameter_name) {
@@ -592,15 +584,13 @@
                     first_thumb = first_sales['TurboThumb']
                 }
             }
-            // console.log('first_sales : ', bd_page[0]);
             const itmtot_amt = bd_page.reduce((accumulator, bd) => {
-                // return accumulator + parseFloat(bd.SalesSupply) + parseFloat(bd.SalesVat) // 합계금액 (공급가액 + 세액)
-                return accumulator + parseFloat(bd.SalesSupply)
+                return accumulator + parseFloat(bd.SalesSupply) + parseFloat(bd.SalesVat) // 합계금액 (공급가액 + 세액)
             }, 0)
 
-            // const total_qty = bd_page.reduce((accumulator, bd) => {
-            //     return accumulator + parseFloat(bd.PorderQty)
-            // }, 0)
+            const total_qty = bd_page.reduce((accumulator, bd) => {
+                return accumulator + parseFloat(bd.SalesQty)
+            }, 0)
             let id = parseInt($(`#frm`).find(`input[name="Id"]`).val());
             let parameter = {
                 Id: id,
@@ -634,8 +624,12 @@
                 VatRate: vat_rate,
                 VatName: vat_name,
                 SgroupName: window.User['SgroupName'],
-                //TotalQty : String(Number(total_qty) - 0),
-                FirstThumb : first_thumb
+                // FirstThumb : first_thumb,
+                TotalQty : String(Number(total_qty) - 0)
+            }
+
+            if (typeof first_thumb !== 'undefined') {
+                parameter.FirstThumb = first_thumb;
             }
             if (id < 0) {
                 parameter = { Id: id }
@@ -644,9 +638,6 @@
             } else {
                 delete parameter.UpdatedOn;
             }
-
-            console.log('save : ', parameter);
-
             return parameter;
         }
 
@@ -723,14 +714,6 @@
             $('#our-contact-select').html(our_contact);
         }
 
-        // function set_vat_type_rate($this, msg = true) {
-        //     let vate_rate = $($this).find('option:selected').data('viewvatrate');
-        //     console.log('vate_rate : ', vate_rate);
-        //     $('#vat-type-rate-text').val(vate_rate + '%')
-
-        //     if (parseInt($(`#frm`).find(`input[name="Id"]`).val()) == 0 || ! msg) return;
-        // }
-
         function set_vat_type_rate($this, msg = true) {
             let vate_rate = $($this).find('option:selected').data('viewvatrate');
             $('#vat-type-rate-text').val(vate_rate + '%')
@@ -747,6 +730,7 @@
         }
 
         function get_bd_parameter(bd) {
+            //let discount_rate = Btype.discount_rate_calc(parseInt(minusComma(bd.CurrSalesPrc)) * parseInt(minusComma(bd.salesQty)), parseInt(bd.SalesSum));
             let id = parseInt(bd.Id);
 
             let parameter = {
@@ -755,13 +739,21 @@
                 UpdatedOn: get_now_time_stamp(),
                 SalesId: parseInt(bd.SalesId),
                 SeqNo: bd.SeqNo,
+                ItemId: parseInt(bd.ItemId),
                 SalesQty: String(bd.SalesQty),
+                CostPrc: String(bd.SorderPrc),
                 SalesSupply: String(bd.SalesSupply),
                 SalesVat: String(bd.SalesVat),
                 SalesSum: String(bd.SalesSum),
-                CostPrc: String(bd.CostPrc),
-                Ip: window.User['Ip'],
-                FirstThumb: bd.TurboThumb
+                // ConfirmDate: isEmpty(bd.ConfirmDate) ? '' : moment(bd.ConfirmDate).format('YYYYMMDD'),
+                // DeliDate: isEmpty(bd.DeliDate) ? '' : moment(bd.DeliDate).format('YYYYMMDD'),
+                // DiscountRate: String(discount_rate),
+                CurrPurchPrc: String(bd.CurrPurchPrc),
+                CurrSalesPrc: String(bd.CurrSalesPrc),
+                Ref1: bd.Ref1,
+                Ref2: bd.Ref2,
+                SorderMemo: bd.SorderMemo,
+                Ip: window.User['Ip']
             }
 
             if (id < 0) {
@@ -771,7 +763,6 @@
             } else {
                 delete parameter.UpdatedOn;
             }
-
             return parameter;
         }
 
@@ -795,17 +786,17 @@
             Btype.btn_act_save('#sales-form #frm', async function () {
                 let tr = $(`input[name='bd-cursor-state']:checked`).closest('tr')
                 let index = $(tr).prevAll().length
-
-                if (bd_page[index].SorderBdId == 0) {
-                    iziToast.error({
-                        title: 'Error',
-                        message: @json(_e('Action failed')),
-                    });
-                    return;
-                };
-
-                // 필수텍스트가 안비어있으고 fouces out == 다음 tr 추가
-                if (! dom_required_check($(tr).find(`input`))) {
+                // if (bd_page[index].SorderBdId == 0) {
+                //     console.log('bd_page[index] : ', bd_page[index]);
+                //     iziToast.error({
+                //         title: 'Error',
+                //         message: @json(_e('Action failed')),
+                //     });
+                //     return;
+                // };
+
+                // 필수텍스트가 안비어있으고 focus out == 다음 tr 추가
+                if (bd_page[index].ItemId != 0 && ! dom_required_check($(tr).find(`input`))) {
                     if ($($this).data('last')) {
                         let seq_no = await Btype.get_last_seq_no('sales', $('#auto-slip-no-txt').val())
                         bd_page[index].SeqNo = seq_no;
@@ -837,11 +828,11 @@
             let std_sales_price = $(tr).children('td:eq(11)')
 
             $(qty).val( format_conver_for(minusComma($(qty).val()), formB.ListVars['Format'].SalesQty) )
-            $(prc).val( format_conver_for(minusComma($(prc).val()), formB.ListVars['Format'].SorderPrc) )
+            $(prc).val( format_conver_for(minusComma($(prc).val()), formB.ListVars['Format'].SorderPrc) ) // 수주단가
             $(supply_amt).val( format_conver_for(minusComma($(supply_amt).val()), formB.ListVars['Format'].SupplyAmt) )
             $(vat_amt).val( format_conver_for(minusComma($(vat_amt).val()), formB.ListVars['Format'].VatAmt) )
             $(sum_amt).val( format_conver_for(minusComma($(sum_amt).val()), formB.ListVars['Format'].SumAmt) )
-            $(std_sales_price).text( format_conver_for(minusComma($(std_sales_price).text()), formB.ListVars['Format'].SorderPrc) )
+            $(std_sales_price).text( format_conver_for(minusComma($(std_sales_price).text()), formB.ListVars['Format'].SorderPrc) ) // 표준 매출가
 
             if ($($this).data('last')) {
                 add_tr();
@@ -890,7 +881,6 @@
         }
 
         function create_bd_page() {
-            console.log('create_bd_page()');
             let html = []
             let qty_total = 0, supply_total = 0, vat_amt_vat_total = 0, sum_total = 0;
             bd_page.forEach(bd => {
@@ -940,7 +930,7 @@
                     <td onkeydown="Btype.handleEnterPressedinTabCell(event)"
                         class="text-${formB.ListVars['Align'].SorderPrc}" ${formB.ListVars['Hidden'].SorderPrc}
                         >
-                        <input type="text" class="text-${formB.ListVars['Align'].SorderPrc} border-0 bg-white" value="${format_conver_for(bd.SorderPrc, formB.ListVars['Format'].SorderPrc)}" readonly
+                        <input type="text" class="text-${formB.ListVars['Align'].SorderPrc} border-0 bg-white" value="${format_conver_for(bd.CostPrc, formB.ListVars['Format'].SorderPrc)}" readonly
                         onchange="Btype.check_the_checkbox_when_changing(this)"
                         onfocusout="override_amt_calc_txt_is_changed()"
                         require>
@@ -964,7 +954,7 @@
                     <td onkeydown="Btype.handleEnterPressedinTabCell(event)"
                         class="text-${formB.ListVars['Align'].SumAmt}" ${formB.ListVars['Hidden'].SumAmt}
                         >
-                        <input type="text" class="text-${formB.ListVars['Align'].SumAmt} border-0 bg-white" value="${format_conver_for(bd.SorderSum, formB.ListVars['Format'].SumAmt)}" readonly
+                        <input type="text" class="text-${formB.ListVars['Align'].SumAmt} border-0 bg-white" value="${format_conver_for(bd.SalesSum, formB.ListVars['Format'].SumAmt)}" readonly
                         onchange="Btype.check_the_checkbox_when_changing(this)"
                         onfocusout="override_custom_sum_amt()"
                         required>
@@ -972,15 +962,6 @@
                     <td
                         class="text-${formB.ListVars['Align'].StdSalesPrc}" ${formB.ListVars['Hidden'].StdSalesPrc}>${format_conver_for(bd.StdSalesPrc, formB.ListVars['Format'].StdSalesPrc)}
                     </td>
-
-                    <td onkeydown="Btype.handleEnterPressedinTabCell(event)"
-                        class="text-${formB.ListVars['Align'].DeliDate}" ${formB.ListVars['Hidden'].DeliDate}
-                        >
-                        <input type="date" class="text-${formB.ListVars['Align'].DeliDate} border-0 bg-white" value="${isEmpty(bd.DeliDate) ? '' : moment(bd.DeliDate).format('YYYY-MM-DD')}" readonly
-                        onchange="Btype.check_the_checkbox_when_changing(this)"
-                        onfocusout="save_data_when_entering_text()"
-                        required>
-                    </td>
                     <td onkeydown="Btype.handleEnterPressedinTabCell(event)"
                         class="text-${formB.ListVars['Align'].Ref1}" ${formB.ListVars['Hidden'].Ref1}
                         >
@@ -997,7 +978,7 @@
                         onfocusout="save_data_when_entering_text()">
                     </td>
                     <td
-                        class="text-${formB.ListVars['Align'].SorderMemo}" ${formB.ListVars['Hidden'].SordderMemo}>
+                        class="text-${formB.ListVars['Align'].SalesMemo}" ${formB.ListVars['Hidden'].SorderMemo}>
                         <textarea style="max-height: 30px;" class="rounded w-100 bg-white memo-textarea" id="memo-textarea-${bd.Id}"
                             ondblclick="Btype.dblclick_memo_textarea(this, ${bd.Id})" role="button" readonly>${bd.SorderMemo}</textarea>
                     </td>
@@ -1010,7 +991,6 @@
             $('#SumTotal').val(format_conver_for(sum_total, formB.ListVars['Format'].SumAmt));
 
             document.getElementById('sales-table-body').innerHTML = html.join('');
-
         }
 
         async function add_tr() {
@@ -1093,15 +1073,7 @@
                 <td
                     class="text-${formB.ListVars['Align'].StdSalesPrc}" ${formB.ListVars['Hidden'].StdSalesPrc}>
                 </td>
-                <td onkeydown="Btype.handleEnterPressedinTabCell(event)"
-                    class="text-${formB.ListVars['Align'].DeliDate}" ${formB.ListVars['Hidden'].DeliDate}
-                    >
-                    <input type="date" class="text-${formB.ListVars['Align'].DeliDate} border-0 bg-white" readonly
-                    value="${moment().format('YYYY-MM-DD')}"
-                    onchange="Btype.check_the_checkbox_when_changing(this)"
-                    onfocusout="save_data_when_entering_text()"
-                    required>
-                </td>
+
                 <td onkeydown="Btype.handleEnterPressedinTabCell(event)"
                     class="text-${formB.ListVars['Align'].Ref1}" ${formB.ListVars['Hidden'].Ref1}
                     >
@@ -1110,14 +1082,17 @@
                     onfocusout="save_data_when_entering_text()">
                 </td>
                 <td onkeydown="Btype.handleEnterPressedinTabCell(event)"
+                    data-last=true onfocusout="add_td_last_tap_out(this, ${last_bd_id_inc})"
                     class="text-${formB.ListVars['Align'].Ref2}" ${formB.ListVars['Hidden'].Ref2}
                     >
                     <input type="text" class="text-${formB.ListVars['Align'].Ref2} border-0 bg-white" readonly
                     onchange="Btype.check_the_checkbox_when_changing(this)"
                     onfocusout="save_data_when_entering_text()">
                 </td>
-                <td
+                 <td
                     class="text-${formB.ListVars['Align'].SorderMemo}" ${formB.ListVars['Hidden'].SorderMemo}>
+                    <textarea style="max-height: 30px;" class="rounded w-100 bg-white memo-textarea"
+                        ondblclick="Btype.dblclick_memo_textarea(this, ${last_bd_id_inc})" id="memo-textarea-${last_bd_id_inc}" role="button" readonly></textarea>
                 </td>
             </tr>`;
 
@@ -1128,6 +1103,7 @@
             }, 100);
 
             bd_page.push({
+
                 cursorId: last_bd_id_inc,
                 Id: 0,
                 ItemId: 0,
@@ -1153,56 +1129,68 @@
         }
 
         function set_item_data_to_textbox(item) {
-            console.log('item : ', item);
             let tr = $(`input[name='bd-cursor-state']:checked`).closest('tr')
-            // $(tr).children('td:eq(2)').find('input').val(item.ItemCode)
-            // $(tr).children('td:eq(3)').find('input').val(item.ItemName)
-            // $(tr).children('td:eq(4)').text(item.SubName)
-            // $(tr).children('td:eq(5)').text(item.CountUnit)
-            // $(tr).children('td:eq(6)').find('input').val()
-            // $(tr).children('td:eq(7)').find('input').val(parseFloat(item.PurchPrc).toFixed(window.User['PurchPrcPoint']))
-            // $(tr).children('td:eq(11)').text(parseFloat(item.PurchPrc).toFixed(window.User['PurchPrcPoint']))
-            // let index = $(tr).prevAll().length;
-            // bd_page[index].ItemId = item.Id
-            // bd_page[index].ItemCode = item.ItemCode
-            // bd_page[index].ItemName = item.ItemName
-            // bd_page[index].SubName = item.SubName
-            // bd_page[index].CountUnit = item.CountUnit
-            // bd_page[index].StdSalesPrc = item.PurchPrc
-            // bd_page[index].StdPurchPrc = item.PurchPrc// override_amt_calc_txt_is_changed();
-            // bd_page[index].TurboThumb = item.TurboThumb
-
-            // if (bd_page[index].Id === 0) {
-            //     $(tr).children('td:eq(16)').find('textarea').val(item.ItemMemo)
-            //     bd_page[index].PorderMemo = item.ItemMemo
-            // }
+            $(tr).children('td:eq(2)').find('input').val(item.ItemCode)
+            $(tr).children('td:eq(3)').find('input').val(item.ItemName)
+            $(tr).children('td:eq(4)').text(item.SubName)
+            $(tr).children('td:eq(5)').text(item.CountUnit)
+            $(tr).children('td:eq(6)').find('input').val()
+            $(tr).children('td:eq(7)').find('input').val(parseFloat(item.PurchPrc).toFixed(window.User['PurchPrcPoint']))
+            $(tr).children('td:eq(11)').text(parseFloat(item.SalesPrc).toFixed(window.User['PurchPrcPoint']))
+            let index = $(tr).prevAll().length;
+            bd_page[index].ItemId = item.Id
+            bd_page[index].ItemCode = item.ItemCode
+            bd_page[index].ItemName = item.ItemName
+            bd_page[index].SubName = item.SubName
+            bd_page[index].CountUnit = item.CountUnit
+            bd_page[index].SorderPrc = item.SalesPrc
+            bd_page[index].CurrPurchPrc = item.SalesPrc
+            bd_page[index].CurrSalesPrc = item.PurchPrc// override_amt_calc_txt_is_changed();
+
+            if (!ThumbArr) { // item 받아왔을 때만 bd_page에 TurboThumb 저장
+                bd_page[index].TurboThumb = item.TurboThumb
+            }
+
+            if (bd_page[index].Id === 0) {
+                $(tr).children('td:eq(16)').find('textarea').val(item.ItemMemo)
+                bd_page[index].SorderMemo = item.ItemMemo
+            }
+
+            if (bd_page[index].Id === 0) {
+                $(tr).children('td:eq(16)').find('textarea').val(item.ItemMemo)
+                bd_page[index].SalesMemo = item.ItemMemo
+            }
 
             return $(tr).children('td:eq(6)').find('input')
         }
 
         function update_hd_ui(response) {
-            console.log('update_hd_ui');
             if (isEmpty(response.data) || response.data.apiStatus) {
-                console.log('isEmpty(response.data) || response.data.apiStatus');
                 $('#modal-slip').modal('hide');
                 return;
             }
+            console.log(response);
             Btype.set_slip_no_btn_disabled()
 
             let hd_page = response.data.HdPage[0]
             bd_page = response.data.BdPage ?? []
-            console.log('response : ', response);
+            let thumb = response.data.HdPage[0]['FirstThumb']
+
+            if(!thumb){
+                ThumbArr = thumb;
+            }
+
             $('#Id').val(hd_page.Id)
             $('#auto-slip-no-txt').val(hd_page.SalesNo)
             $('#sales-date').val(moment(to_date(hd_page.SalesDate)).format('YYYY-MM-DD'))
             $('#stock-date').val(moment(to_date(hd_page.StockDate)).format('YYYY-MM-DD'))
             $('#sorder-no-txt').val(hd_page.SorderNo)
             $('#sorder-no-txt').data('id', hd_page.SorderId)
-            $('#status-txt').val(hd_page.Status)
+            $('#status-select').val(hd_page.Status)
 
             $('#deal-type-txt').val(format_conver_for(hd_page.DealCode, "deal_type('deal-type')"))
             $('#supplier-txt').val(hd_page.CompanyName)
-            $('#supplier-txt').data('id', hd_page.SupplierId)
+            $('#supplier-txt').data('id', hd_page.BuyerId)
             $('#supplier-txt').data('contact', hd_page.BuyerContact)
             $('#supplier-contact-txt').val(hd_page.BuyerContact)
 

+ 14 - 9
resources/views/front/dabory/erp/revenue/sorder.blade.php

@@ -56,7 +56,7 @@
                                         {{-- <button id="auto-slip-no-btn" class="btn-dark border-white rounded overflow-hidden col-3 text-center text-white text-nowrap radius-r0"--}}
                                         {{-- onclick="get_last_slip_no(this)">--}}
                                         {{--  <span class="icon-cogs"></span>--}}
-                                            </button>
+                                        {{--    </button>--}}
                                             <input type="text" id="auto-slip-no-txt" class="rounded w-100 radius-l0" autocomplete="off" disabled
                                                    maxlength="{{ $formB['FormVars']['MaxLength']['AutoSlipNo'] }}"
                                                 {{ $formB['FormVars']['Required']['AutoSlipNo'] }}>
@@ -327,6 +327,7 @@
 <script src="{{ csset('/js/modals-controller/b-type/common.js') }}"></script>
     <script>
         window.onload = async function () {
+            ThumbArr = [];
             //await Btype.fetch_slip_form_book(query['QueryVars']['FilterValue']);
             make_dynamic_table_css('.sorder-table', make_dynamic_table_px(formB['ListVars']['Size']))
 
@@ -335,7 +336,6 @@
             Btype.get_storage_name_and_branch_name()
             // let data = await Btype.get_slip_form_init()
             slipInit = @json($slipFormInitCacheData);
-            // console.log('slipInit : ', slipInit);
             formB['SlipCommonSetup'] = slipInit['SlipCommonSetup']
             await Btype.create_deal_type_select_box_options(slipInit.DealTypePage)
             await Btype.create_vat_type_select_box_options(slipInit.VatRatePage)
@@ -512,7 +512,7 @@
         }
 
         async function add_td_last_tap_out($this, id) {
-            Btype.btn_act_save('#squote-form #frm', async function () {
+            Btype.btn_act_save('#sorder-form #frm', async function () {
                 let tr = $(`input[name='bd-cursor-state']:checked`).closest('tr')
                 let index = $(tr).prevAll().length
 
@@ -520,7 +520,6 @@
                 if (bd_page[index].ItemId != 0 && ! dom_required_check($(tr).find(`input`))) {
                     if ($($this).data('last')) {
                         let seq_no = await Btype.get_last_seq_no('sorder', $('#auto-slip-no-txt').val())
-                        console.log('seq_no : ', seq_no);
                         bd_page[index].SeqNo = seq_no;
                     }
 
@@ -528,7 +527,6 @@
                         bd_page[index].Id = page[0].Id;
                         body_act_success_callback($this, tr);
                         Btype.check_the_checkbox_when_changing($this, false)
-                        // Btype.btn_act_save('#sorder-form #frm');
                     });
                 } else {
                     iziToast.error({
@@ -669,6 +667,7 @@
             const vat_rate = $('#vat-type-select').find('option:selected').data('vatrate')
             const vat_name = slipInit['VatRatePage'].filter(page => page['Id'] === Number($('#vat-type-select').val()))[0]['VatName']
             let first_item = ''
+            let first_thumb = ''
 
             if (bd_page.length > 0) {
                 const first_sorder = bd_page[0]
@@ -678,7 +677,10 @@
                     first_item += '_' + first_sorder['SubName']
                 }
                 first_item += '(' + bd_page.length + ')'
-                first_thumb = first_sorder['TurboThumb']
+
+                if(first_sorder['TurboThumb']){
+                    first_thumb = first_sorder['TurboThumb']
+                }
             }
             const itmtot_amt = bd_page.reduce((accumulator, bd) => {
                 return accumulator + parseFloat(bd.SorderSupply) + parseFloat(bd.SorderVat) // 합계금액 (공급가액 + 세액)
@@ -735,7 +737,6 @@
                 delete parameter.UpdatedOn;
             }
 
-            console.log('save : ', parameter)
             return parameter;
         }
 
@@ -1143,7 +1144,7 @@
             bd_page[index].CurrPurchPrc = item.PurchPrc
             bd_page[index].CurrSalesPrc = item.SalesPrc// override_amt_calc_txt_is_changed();
 
-            if (hdPage['FirstThumb'] == '') {
+            if (!ThumbArr) { // item 받아왔을 때만 bd_page에 TurboThumb 저장
                 bd_page[index].TurboThumb = item.TurboThumb
             }
 
@@ -1163,8 +1164,12 @@
             Btype.set_slip_no_btn_disabled()
 
             let hd_page = response.data.HdPage[0]
-            hdPage = hd_page;
             bd_page = response.data.BdPage ?? []
+            let thumb = response.data.HdPage[0]['FirstThumb']
+
+            if(!thumb){
+                ThumbArr = thumb;
+            }
 
             $('#Id').val(hd_page.Id)
             $('#auto-slip-no-txt').val(hd_page.SorderNo)

+ 4 - 8
resources/views/front/dabory/erp/sales/squote.blade.php

@@ -283,6 +283,7 @@
     <script>
         window.onload = async function () {
             make_dynamic_table_css('.squote-table', make_dynamic_table_px(formB['ListVars']['Size']))
+
             $('#squote-date').val(date_to_sting(new Date()))
 
             let sgroup_pick = await get_api_data('sgroup-pick', { Page: [ { Id:  parseInt(window.User['SgroupId']) } ] });
@@ -430,7 +431,7 @@
 
             // $(`#modal-bodycopy.${parameter_name}`).find('.slip_no-txt').val($('#auto-slip-no-txt').val())
             $(`#modal-bodycopy.${parameter_name}`).find('.company_name-txt').val($('#supplier-txt').val())
-            console.log('parameter_name : ', parameter_name);
+
             let data = formB['BodySelectOptions'].filter(selectOption => selectOption['ModalClassName'] == parameter_name)[0];
             $('.sales').find('.modal-btn').data('target', 'bodycopy')
             $('.sales').find('.modal-btn').data('variable', data['Parameter'])
@@ -444,7 +445,6 @@
         function btn_act_copy_to_another(parameter_name) {
             let data = formB['HeadSelectOptions'].filter(selectOption => selectOption['ModalClassName'] == parameter_name)[0];
             // $(`#modal-copy-to-another.${parameter_name}`).find('.target-slip-no-txt').data('slip-no', $('#auto-slip-no-txt').val())
-            console.log('parameter : ', data['Parameter']);
             $(`#modal-copy-to-another.${parameter_name}`).find('.source-slip-no-txt').val($('#auto-slip-no-txt').val())
             $('.sales').find('.modal-btn').data('target', 'copy-to-another')
             $('.sales').find('.modal-btn').data('variable', data['Parameter'])
@@ -487,23 +487,19 @@
             const deal_name = slipInit['DealTypePage'].filter(page => page['Id'] === Number($('#deal-type-select').val()))[0]['DealName']
             const vat_rate = $('#vat-type-select').find('option:selected').data('vatrate')
             const vat_name = slipInit['VatRatePage'].filter(page => page['Id'] === Number($('#vat-type-select').val()))[0]['VatName']
-            console.log('vat_name : ', vat_name);
 
             let first_item = ''
             if (bd_page.length > 0) {
-                console.log('bd_page : ', bd_page[0]);
                 const first_squote = bd_page[0]
                 first_item = first_squote['ItemCode'] + '_' + first_squote['ItemName']
                 if (first_squote['SubName']) {
                     first_item += '_' + first_squote['SubName']
                 }
-                squote_vat=first_squote['SquoteVat'];
                 first_item += '(' + bd_page.length + ')'
             }
             const itmtot_amt = bd_page.reduce((accumulator, bd) => {
                 return accumulator + parseFloat(bd.SquoteSupply) + parseFloat(bd.SquoteVat) // 합계금액 (공급가액 + 세액)
             }, 0)
-
             let id = parseInt($(`#frm`).find(`input[name="Id"]`).val());
             let parameter = {
                 Id: id,
@@ -629,7 +625,7 @@
         function set_vat_type_rate($this, msg = true) {
             let vate_rate = $($this).find('option:selected').data('viewvatrate');
             $('#vat-type-rate-text').val(vate_rate + '%')
-            console.log('vate_rate : ', vate_rate);
+
             if (parseInt($(`#frm`).find(`input[name="Id"]`).val()) == 0 || ! msg) return;
             Btype.call_act_api(get_parameter(), function() { });
 
@@ -860,7 +856,7 @@
             $(tr).children('td:eq(3)').find('input').val(item.ItemName)
             $(tr).children('td:eq(4)').text(item.SubName)
             $(tr).children('td:eq(5)').text(item.CountUnit)
-            $(tr).children('td:eq(6)').find('input').val(0)
+            $(tr).children('td:eq(6)').find('input').val()
             $(tr).children('td:eq(7)').find('input').val(parseFloat(item.PurchPrc).toFixed(window.User['PurchPrcPoint']))
             $(tr).children('td:eq(11)').text(parseFloat(item.SalesPrc).toFixed(window.User['PurchPrcPoint']))
 

+ 1 - 10
resources/views/front/dabory/erp/stock/tab/genio-correct.blade.php

@@ -551,7 +551,7 @@
             }
 
             GenioCorrect.add_td_last_tap_out = async function ($this, id) {
-                Btype.btn_act_save('#squote-form #frm', async function () {
+                Btype.btn_act_save('#genio-form #frm', async function () {
                     let tr = $('#correct-tab').find(`input[name='bd-cursor-state']:checked`).closest('tr')
                     let index = $(tr).prevAll().length
                     // 필수텍스트가 안비어있으고 fouces out == 다음 tr 추가
@@ -566,15 +566,6 @@
                             GenioCorrect.custom_body_act_success_callback($this, tr);
                             Btype.check_the_checkbox_when_changing($this, false, 'GenioCorrect')
                         }, 'GenioCorrect');
-
-                        let itemCodeInput = $(tr).find(`input[type="text"]`).first();
-                        let itemNameInput = $(tr).find(`input[type="text"]`).eq(1);
-                        if (itemCodeInput.length > 0) {
-                            Btype.set_slip_no_btn_disabled(itemCodeInput)
-                            Btype.set_slip_no_btn_disabled(itemNameInput)
-                            // $(firstTextInput).addClass('border-0 bg-white')
-                            // $(firstTextInput).prop('readonly', true)
-                        }
                     } else {
                         iziToast.error({
                             title: 'Error',